difference between wsdl2ruby and runtime generated driver

0 views
Skip to first unread message

ls

unread,
Jul 10, 2008, 2:58:55 PM7/10/08
to soap4r
hi,

i generated a driver from a wsdl at runtime using:

driver =
SOAP::WSDLDriverFactory.new("test_service.wsdl").create_rpc_driver

that works correctly - generating the following soap request:

<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<n1:TestService xmlns:n1="test">
<n1:strName>Smith</n1:strName>
<n1:strCounty>Jefferson</n1:strCounty>
</n1:TestService>
</env:Body>
</env:Envelope>

when i generate a driver using wsdl2ruby like so:

wsdl2ruby.rb --wsdl test_service.wsdl --type client

the soap request looks like:

<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<n1:TestService xmlns:n1="test">
<strName>Smyth</strName>
<strCounty>Jefferson</strCounty>
</n1:TestService>
</env:Body>
</env:Envelope>

the difference is that the "strName" and "strCount" elements in the
request body do not have the "n1" namespace.

which results in the soap server not recognize the strName/strCount
parameters in the request.

the fragment of the wsdl for the request looks like this:

<s:element name="test">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="strKeyword"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="strName"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="strCounty"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="strYear"
type="s:string" />
</s:sequence>
</s:complexType>
</s:element>

per my client's request, i cannot include the actual wsdl.

is there a way to force wsdl2ruby to generate the required namespace?

thanks!

ls

unread,
Jul 10, 2008, 3:06:08 PM7/10/08
to soap4r
ugh - i shouldn't have been so quick to post.

setting:

driver.use_default_namespace = true

fixes the problem.
Reply all
Reply to author
Forward
0 new messages