WSDL says "cannot find type {}sayHi" - what does this mean?

K

Kuro Kurosaka

Hi,
I'm new to Ruby (just finished Hello World) and also fairly new to SOAP.
I have a Java service written using CXF.
I ran these lines with the WSDL generated by CXF:

require 'soap/wsdlDriver'
WSDL_URI = 'http://xpen-kuro:8080/cxf_service/HelloWorld?wsdl'
hw = SOAP::WSDLDriverFactory.new(WSDL_URI).create_rpc_driver
hw.generate_explicit_type = true
hw.wiredump_dev = STDOUT
res = hw.sayHi('Hello World!')

Then I've got this error:
SOAP::Mapping::MappingError: cannot find type {}sayHi

What does this mean?
Does "{}sayHi" means anything special in Ruby?

sayHi is defined as an element in the <type> section,
as a message, and as an operation in the WSDL:
<wsdl:types>
<xsd:schema xmlns="http://spring.demo/" ...>
<xsd:element name="sayHi" type="sayHi"/>
<xsd:complexType name="sayHi">
<xsd:sequence>
<xsd:element minOccurs="0" name="arg0" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
...
<wsdl:binding name="HelloWorldImplServiceSoapBinding"
type="ns1:HelloWorld">
<soap:binding style="document" transport="...">
<wsdl:eek:peration name="sayHi">
<soap:eek:peration soapAction="" style="document"/>
<wsdl:input name="sayHi">
<soap:body use="literal"/>
</wsdl:input>
...
<wsdl:binding name="HelloWorldImplServiceSoapBinding"
type="ns1:HelloWorld">
<soap:binding style="document" transport="..."/>
<wsdl:eek:peration name="sayHi">
<soap:eek:peration soapAction="" style="document"/>
<wsdl:input name="sayHi">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:eek:utput name="sayHiResponse">
<soap:body use="literal"/>
</wsdl:eek:utput>
</wsdl:eek:peration>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top