Hi all, I am testing out SOAP/WSDL interaction between Ruby and a webservice written in Java. I am able to test the Java webservice via a Java client and get a proper response back, but for whatever reason when I use Ruby to call my webservice, I get a null SOAP Mapping Object returned back to me.
My Ruby code which is calling the webservice is as follows,
require 'soap/wsdlDriver'
wsdl ='http://localhost:8080/helloservice-war/HelloService?wsdl'
driver = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
String myString = 'pookieMon'
puts "Your answer = %s" % driver.sayHello(myString)
puts driver.sayHello(nil)
I'm trying two different 'puts' statements, just in case. I noticed by looking at my server logs that Ruby is not even passing an argument to the webservice and hence is not getting anything back either.
Here is what Ruby sends,
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><env:Header/><env:Body><n1:sayHello xmlns:n1="http://endpoint.helloservice/"> </n1:sayHello></env:Body></env:Envelope>
Here is what my Java code sends (and is successful),
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<ns2:sayHello xmlns:ns2="http://endpoint.helloservice/">
<arg0>pookieMon</arg0>
</ns2:sayHello>
</S:Body>
</S:Envelope>
What's going on here, am I just making a very obvious simple mistake here, or does the Ruby soap/wsdlDriver work differently? I'm a Ruby (and SOAP!) newbie.
Thanks.
-Moazam