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

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 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: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>