|
Hi ,
I am trying to call a BPEL process (Which is a Web service it self) from Ruby code. But i am getting the mapping error... I tried alot ove rthe net and posting the issue here....
My WSDL of the BPEL Process is :: <definitions name="AuthenticateUserFlow" targetNamespace="http://xmlns.oracle.com/AuthenticateUserFlow"> − <types> − <schema> <import namespace="http://xmlns.oracle.com/AuthenticateUserFlow" schemaLocation="AuthenticateUserFlow.xsd"/>
<schema> <element name="AuthenticateUserFlowProcessRequest"> <complexType> <sequence> <element name="userName" type="string"/> <element name="password" type="string"/> </sequence> </complexType> </element> <element name="AuthenticateUserFlowProcessResponse"> <complexType> <sequence> <element name="userId" type="decimal"/> <element name="locationId" type="decimal"/> <element name="tenantId" type="decimal"/> <element name="userName" type="string"/> <element name="isValidUser" type="string"/> <element name="userEmail" type="string"/> <element name="firstName" type="string"/> <element name="lastName" type="string"/> <element name="middleName" type="string"/> <element name="userAddress" type="string"/> <element name="userGrade" type="string"/> <element name="managerName" type="string"/> <element name="managerUserName" type="string"/> <element name="flightPreferredSeat" type="string"/> <element name="flightPreferredMeal" type="string"/> <element name="carTypePreferred" type="string"/> <element name="createdOn" type="dateTime"/> <element name="updatedOn" type="dateTime"/> <element name="registrationSteps" type="decimal"/> <element name="StatusCode" type="integer"/> <element name="StausMessage" type="string"/> </sequence> </complexType> </element> </schema> </types> − <message name="AuthenticateUserFlowRequestMessage"> <part name="payload" element="tns:AuthenticateUserFlowProcessRequest"/> </message> − <message name="AuthenticateUserFlowResponseMessage"> <part name="payload" element="tns:AuthenticateUserFlowProcessResponse"/> </message> − <portType name="AuthenticateUserFlow"> − <operation name="process"> <input message="tns:AuthenticateUserFlowRequestMessage"/> <output message="tns:AuthenticateUserFlowResponseMessage"/> </operation> </portType> − <binding name="AuthenticateUserFlowBinding" type="tns:AuthenticateUserFlow"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> − <operation name="process"> <soap:operation style="document" soapAction="process"/> − <input> <soap:body use="literal"/> </input> − <output> <soap:body use="literal"/> </output> </operation> </binding> − <service name="AuthenticateUserFlow"> − <port name="AuthenticateUserFlowPort" binding="tns:AuthenticateUserFlowBinding"> <soap:address location="http://localhost:8888/orabpel/default/AuthenticateUserFlow/1.0"/> </port> </service> − <plnk:partnerLinkType name="AuthenticateUserFlow"> − <plnk:role name="AuthenticateUserFlowProvider"> <plnk:portType name="tns:AuthenticateUserFlow"/> </plnk:role> </plnk:partnerLinkType> </definitions>
My Ruby code is ::
username = 'Chandra' password = 'Ravi' params = {"userName" => username, "password" => password}
wsdl="http://localhost:8888/orabpel/default/AuthenticateUserFlow/1.0/AuthenticateUserFlow?wsdl" driver=SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver driver.options["protocol.http.ssl_config.verify_mode"] = nil @doc=driver.process(params) puts "#{@doc}"
The Error I am getting is :
SOAP::Mapping::MappingError in HelloworldController#hello cannot find type {}string
c:/ruby/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:97:in `obj2elesoap' c:/ruby/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:158:in `complexobj2soap' c:/ruby/lib/ruby/1.8/wsdl/xmlSchema/complexType.rb:59:in `each_element' c:/ruby/lib/ruby/1.8/wsdl/xmlSchema/complexType.rb:54:in `each_element' c:/ruby/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:134:in `complexobj2soap' c:/ruby/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:115:in `obj2typesoap' c:/ruby/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:100:in `obj2elesoap' c:/ruby/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:40:in `obj2soap' c:/ruby/lib/ruby/1.8/soap/mapping/mapping.rb:127:in `_obj2soap' c:/ruby/lib/ruby/1.8/soap/mapping/mapping.rb:47:in `obj2soap' c:/ruby/lib/ruby/1.8/soap/mapping/mapping.rb:360:in `protect_threadvars' c:/ruby/lib/ruby/1.8/soap/mapping/mapping.rb:43:in `obj2soap' c:/ruby/lib/ruby/1.8/soap/rpc/proxy.rb:422:in `request_doc_lit' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/inflector.rb:250:in `collect' c:/ruby/lib/ruby/1.8/soap/rpc/proxy.rb:421:in `request_doc_lit' c:/ruby/lib/ruby/1.8/soap/rpc/proxy.rb:386:in `request_doc' c:/ruby/lib/ruby/1.8/soap/rpc/proxy.rb:340:in `request_body' c:/ruby/lib/ruby/1.8/soap/rpc/proxy.rb:123:in `call' c:/ruby/lib/ruby/1.8/soap/rpc/driver.rb:178:in `call' c:/ruby/lib/ruby/1.8/soap/rpc/driver.rb:232:in `process' #{RAILS_ROOT}/app/controllers/helloworld_controller.rb:60:in `hello'
Could Any one suggest me the solution for this.........
|