I’m taking babysteps learning ruby. The following snippet of code
worked until last week, when our sysadmin applied some patches/updates
from Redhat.
require “soap/wsdlDriver”
wsdl = “HTTP://localhost:8181/customer”
soap = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
result = soap.list_cust({ “cust_id” => “0015000” })
@cust_name = result.list_custROOT.customer.name
Now however, I receive the following error when I try this in irb:
bash-3.1$ irb --simple-prompt
>> require "soap/wsdlDriver"
=> true
>> wsdl = "HTTP://davewalker.ivyhill-cinram.com:8181/customer"
=> "HTTP://davewalker.ivyhill-cinram.com:8181/customer"
>> soap = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
=> #<SOAP::RPC::Driver:#<SOAP::RPC::Proxy:HTTP://
davewalker.ivyhill-cinram.com:8181/customer>>
>> cust = soap.list_cust( { :cust_id => “0015000” } )
SOAP::Mapping::MappingError: cannot find type {}string
– from /usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:
90:in obj2elesoap' from /usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb: 141:in
complexobj2soap’
from /usr/lib/ruby/1.8/wsdl/xmlSchema/complexType.rb:56:in
each_element' from /usr/lib/ruby/1.8/wsdl/xmlSchema/complexType.rb:52:in
each’
from /usr/lib/ruby/1.8/wsdl/xmlSchema/complexType.rb:52:in
each_element' from /usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb: 122:in
complexobj2soap’
from /usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:
108:in obj2typesoap' from /usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb: 93:in
obj2elesoap’
from /usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:
39:in obj2soap' from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:127:in
_obj2soap’
from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:47:in
obj2soap' from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:360:in
protect_threadvars’
from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:43:in
obj2soap' from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:422:in
request_doc_lit’
from (irb):5:in collect' from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:421:in
each’
from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:421:in collect' from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:421:in
request_doc_lit’
from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:386:in
request_doc' from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:340:in
request_body’
from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:123:in call' from /usr/lib/ruby/1.8/soap/rpc/driver.rb:178:in
call’
from /usr/lib/ruby/1.8/soap/rpc/driver.rb:232:in `list_cust’
from (irb):5>>
?>
Nothing has changed on either the database backend, or the soap
server. Just the updates to the Redhat development box. What am I
missing here?
Thanks,