K
Kishore
Hi:
I am trying to interface a SOAP client written in Ruby with a .NET
webservice. However, I am unable to get the client to construct the
correct SOAP request for methods with one string argument. My ruby
client file has the following code:
require 'soap/wsdlDriver'
require 'cgi'
WSDL_URL = "http://instrument1/orbitws/orbitinterferencews.asmx?WSDL"
soap_client = SOAP::WSDLDriverFactory.new(WSDL_URL).create_rpc_driver
# Log SOAP request and response
soap_client.wiredump_file_base = "soap-log.txt"
# Call reset method.
result = soap_client.resetIntWS(nil)
puts result.inspect
# Call stopGenerate method.
result = soap_client.stopGenerate('1')
puts result.inspect
The first method call works but the second one fails to construct the
SOAP request with the single argument. We tried using double quotes as
well but that did not work either.
The SOAP request we want should like like:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<stopGenerate xmlns="http://instrument1.orbit-lab.org/OrbitWS/">
<request_id>string</request_id>
</stopGenerate>
</soap:Body>
</soap:Envelope>
However, our SOAP request looks like:
<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<n1:stopGenerate
xmlns:n1="http://instrument1.orbit-lab.org/OrbitWS/">
</n1:stopGenerate>
</env:Body>
</env:Envelope>
Note that the "<request_id>string</request_id>" is missing. Can you
please tell me why this is happening. I am using ruby v1.8.4 on a
debian linux 2.6.11-1-686-smp.
Thanks,
Kishore
I am trying to interface a SOAP client written in Ruby with a .NET
webservice. However, I am unable to get the client to construct the
correct SOAP request for methods with one string argument. My ruby
client file has the following code:
require 'soap/wsdlDriver'
require 'cgi'
WSDL_URL = "http://instrument1/orbitws/orbitinterferencews.asmx?WSDL"
soap_client = SOAP::WSDLDriverFactory.new(WSDL_URL).create_rpc_driver
# Log SOAP request and response
soap_client.wiredump_file_base = "soap-log.txt"
# Call reset method.
result = soap_client.resetIntWS(nil)
puts result.inspect
# Call stopGenerate method.
result = soap_client.stopGenerate('1')
puts result.inspect
The first method call works but the second one fails to construct the
SOAP request with the single argument. We tried using double quotes as
well but that did not work either.
The SOAP request we want should like like:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<stopGenerate xmlns="http://instrument1.orbit-lab.org/OrbitWS/">
<request_id>string</request_id>
</stopGenerate>
</soap:Body>
</soap:Envelope>
However, our SOAP request looks like:
<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<n1:stopGenerate
xmlns:n1="http://instrument1.orbit-lab.org/OrbitWS/">
</n1:stopGenerate>
</env:Body>
</env:Envelope>
Note that the "<request_id>string</request_id>" is missing. Can you
please tell me why this is happening. I am using ruby v1.8.4 on a
debian linux 2.6.11-1-686-smp.
Thanks,
Kishore