J
Jeff LaMarche
I'm using the SOAP::RPC:river to access a web service for which I
don't have a WSDL (actually, there is one, but it's not well formed
and it the WSDLDriverFactory chokes on it).
So, I create the driver:
QUERY_URL = "http://209.27.15.27/services/Query"
stub = SOAP::RPC:river.new(QUERY_URL)
Now I add a method. This method takes three parameters: a string, a
long, and a long
stub.add_method('getModuleList', 'securityToken', 'userId', 'companyId')
Then I call the method. The problem is, the XML that's getting
created is specifying int instead of long for the second and third
parameter:
queryRet = stub.getModuleList(security_token, user_id.to_i,
company_id.to_i)
which results in:
#<SOAP::Mapping::Object:0x104d7cc>: org.xml.sax.SAXException: Bad
types (int -> long) (SOAP::FaultError)
Is there any way to "force" it to specify that these parameters are
long? It seems to only work correctly if user_id and company_id are
big enough to force it to go to a Bignum. Any help would be greatly
appreciated!
Thanks,
Jeff
don't have a WSDL (actually, there is one, but it's not well formed
and it the WSDLDriverFactory chokes on it).
So, I create the driver:
QUERY_URL = "http://209.27.15.27/services/Query"
stub = SOAP::RPC:river.new(QUERY_URL)
Now I add a method. This method takes three parameters: a string, a
long, and a long
stub.add_method('getModuleList', 'securityToken', 'userId', 'companyId')
Then I call the method. The problem is, the XML that's getting
created is specifying int instead of long for the second and third
parameter:
queryRet = stub.getModuleList(security_token, user_id.to_i,
company_id.to_i)
which results in:
#<SOAP::Mapping::Object:0x104d7cc>: org.xml.sax.SAXException: Bad
types (int -> long) (SOAP::FaultError)
Is there any way to "force" it to specify that these parameters are
long? It seems to only work correctly if user_id and company_id are
big enough to force it to go to a Bignum. Any help would be greatly
appreciated!
Thanks,
Jeff