R
Roland Schmitt
Hello,
i try to call a ASP.NET based web service with soap4r.
The call is successful, this means no error is thrown in ruby nor in the web service. The problem is that the value returned is not as expected.
I cut i down to the following:
This is what soap4r sends:
<?xml version="1.0" encoding="us-ascii" ?>
<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>
<SayHello xmlns="http://localhost/PingService/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">Roland</name>
</SayHello>
</env:Body>
</env:Envelope>
This is what the service returns:
...
<SayHelloResult>Hello, </SayHelloResult>
...
This is what i expect:
...
<SayHelloResult>Hello, Roland</SayHelloResult>
If i remove the namespace definition (ns1) by hand in the soap4r call, e.g.
<?xml version="1.0" encoding="us-ascii" ?>
<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>
<SayHello xmlns="http://localhost/PingService/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">Roland</name>
</SayHello>
</env:Body>
i get the correct answer.
Here is my ruby code:
require "soap/rpc/driver"
include SOAP::RPC
class Test
def initialize()
driver = SOAP::RPC:
river.new('http://localhost:8070/PingService/PingService.asmx','http://localhost/PingService/')
driver.allow_unqualified_element=true
driver.add_method_with_soapaction('SayHello','http://localhost/PingService/SayHello','name')
puts("Ergebnis: ", driver.SayHello("Roland"))
end
end
Test.new
Any hints?
Regards,
Roland
__________________________________________________________
Mit WEB.DE FreePhone mit hoechster Qualitaet ab 0 Ct./Min.
weltweit telefonieren! http://freephone.web.de/?mc=021201
i try to call a ASP.NET based web service with soap4r.
The call is successful, this means no error is thrown in ruby nor in the web service. The problem is that the value returned is not as expected.
I cut i down to the following:
This is what soap4r sends:
<?xml version="1.0" encoding="us-ascii" ?>
<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>
<SayHello xmlns="http://localhost/PingService/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">Roland</name>
</SayHello>
</env:Body>
</env:Envelope>
This is what the service returns:
...
<SayHelloResult>Hello, </SayHelloResult>
...
This is what i expect:
...
<SayHelloResult>Hello, Roland</SayHelloResult>
If i remove the namespace definition (ns1) by hand in the soap4r call, e.g.
<?xml version="1.0" encoding="us-ascii" ?>
<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>
<SayHello xmlns="http://localhost/PingService/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">Roland</name>
</SayHello>
</env:Body>
i get the correct answer.
Here is my ruby code:
require "soap/rpc/driver"
include SOAP::RPC
class Test
def initialize()
driver = SOAP::RPC:
driver.allow_unqualified_element=true
driver.add_method_with_soapaction('SayHello','http://localhost/PingService/SayHello','name')
puts("Ergebnis: ", driver.SayHello("Roland"))
end
end
Test.new
Any hints?
Regards,
Roland
__________________________________________________________
Mit WEB.DE FreePhone mit hoechster Qualitaet ab 0 Ct./Min.
weltweit telefonieren! http://freephone.web.de/?mc=021201