From: Scott Parkerson Date: 2004-11-16T23:34:52+09:00 Subject: SOAP4R and ur-types Hello, I am trying to implement a SOAP client in Ruby 1.8.1 that queries a service and gets a response. I've followed NaHi's examples, and have had some success until I query the service and the response is an array of ur-types. Then, my program crashes horribly. Below is the response off the wire. All names of SOAP methods and stuff have been changed and/or mangled to protect the innocent (CYA on my NDA, natch): 2 111111 Thing #1 111112 Thing #2 ---- Here's the code: require 'soap/rpc/driver' server = "http://someplace.com/soap" namespace = "FooAPI" wiredump = STDERR drv = SOAP::RPC::Driver.new( server, namespace ) drv.wiredump_dev = wiredump drv.add_method( "GetThingies", "arg1", "arg2" ) p drv.GetThingies( 0, 1 ) ---- And here is the stack trace I'm getting: /usr/local/lib/ruby/1.8/soap/mapping/mapping.rb:157:in `const_defined?': wrong constant name Ur-type (NameError) from /usr/local/lib/ruby/1.8/soap/mapping/mapping.rb:157:in `class_from_name' from /usr/local/lib/ruby/1.8/soap/mapping/mapping.rb:156:in `each' from /usr/local/lib/ruby/1.8/soap/mapping/mapping.rb:156:in `class_from_name' from /usr/local/lib/ruby/1.8/soap/mapping/rubytypeFactory.rb:404:in `unknownstruct2obj' from /usr/local/lib/ruby/1.8/soap/mapping/rubytypeFactory.rb:385:in `unknowntype2obj' from /usr/local/lib/ruby/1.8/soap/mapping/rubytypeFactory.rb:237:in `soap2obj' from /usr/local/lib/ruby/1.8/soap/mapping/registry.rb:386:in `_soap2obj' from /usr/local/lib/ruby/1.8/soap/mapping/registry.rb:323:in `soap2obj' ... 16 levels... from /usr/local/lib/ruby/1.8/soap/rpc/driver.rb:201:in `collect' from /usr/local/lib/ruby/1.8/soap/rpc/driver.rb:201:in `call' from (eval):2:in `GetThingies' from thingy_test.rb:11 Any ideas? Is this where I roll up my sleeves and use the mapping registry? And, if so, how? (And yes, I've read this already: http://rrr.jin.gr.jp/rwiki?cmd=view;name=soap4r%3AHow+I+might+use+mysterious+mappingRegistry) Thanks, Scott