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

**URL:** <https://www.ruby-forum.com/t/wsdl-says-cannot-find-type-sayhi-what-does-this-mean/116969>\
**Category:** Ruby\
**Created:** [October 11, 2007, 7:34pm UTC](https://www.ruby-forum.com/t/wsdl-says-cannot-find-type-sayhi-what-does-this-mean/116969 "2007-10-11T19:34:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![tkurosaka](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/9dc877/32.png) [@tkurosaka](https://www.ruby-forum.com/u/tkurosaka)\
**Post date:** [October 11, 2007, 7:34pm UTC](https://www.ruby-forum.com/t/wsdl-says-cannot-find-type-sayhi-what-does-this-mean/116969/1 "2007-10-11T19:34:16Z")

</div>

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](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 section,  
as a message, and as an operation in the WSDL:  
wsdl:types  
\<xsd:schema xmlns=“[http://spring.demo/](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:operation name=“sayHi”\>  
\<soap:operation 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:operation name=“sayHi”\>  
\<soap:operation soapAction=“” style=“document”/\>  
\<wsdl:input name=“sayHi”\>  
\<soap:body use=“literal”/\>  
\</wsdl:input\>  
\<wsdl:output name=“sayHiResponse”\>  
\<soap:body use=“literal”/\>  
\</wsdl:output\>  
\</wsdl:operation\>
