Hi,

I can't seem to figure out how to pass a Hash to a webservice
function. This is what I'm doing:

require "soap/wsdlDriver"
wsdl = "http://localhost:8888/cgi-bin/WebObjects/Interview.woa/ws/WebServices?wsdl"
factory = SOAP::WSDLDriverFactory.new(wsdl)
@driver = factory.createDriver

@driver.someWebserviceFunctionWithStringAndNumber("blah", 55)
@driver.someWebserviceFunctionWithHash({"key1" => "value1", "key2" =>
"value2"})

someWebserviceFunctionWithStringAndNumber works fine,
someWebserviceFunctionWithHash throws up with

test_hash(WebServicesTest):
SOAP::Mapping::MappingError: Cannot map Array to SOAP/OM.
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:61:in
`obj2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/mapping.rb:105:in `_obj2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:119:in
`array2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:118:in `each'
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:118:in
`array2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:45:in
`obj2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/mapping.rb:105:in `_obj2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:128:in
`elements2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:125:in `each'
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:125:in
`elements2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:110:in
`struct2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/wsdlRegistry.rb:43:in
`obj2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/mapping.rb:105:in `_obj2soap'
    /usr/local/lib/ruby/1.8/soap/mapping/mapping.rb:36:in `obj2soap'
    /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:210:in `rpc_send'

Why is it trying to map an Array? Is Hash not supported by Ruby's SOAP
implementation?

Thanks,
Christian