[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

doc literal with soap4r

snacktime

12/1/2006 4:23:00 AM

Since I'm not a soap expert I thought I would ask. The following soap
message isn't accepted by Netsuite, and their apache axis server
throws an exception about not being able to marshal the data.
Netsuite say's the soap messages should be in doc literal format. Is
it? Are there any options to soap4r to get it to format messages more
like the second example below? Their example soap request is
structured a bit differently, I included it at the bottom of this
message.


My soap message, makes server throw a marshalling error.

<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSc...
xmlns:env="http://schemas.xmlsoap.org/soap/envel...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...
<env:Body>
<n1:login xmlns:n1="urn:messages_2_5.platform.webservices.netsuite.com"
xmlns:n2="urn:core_2_5.platform.webservices.netsuite.com"
xsi:type="n2:Passport">
<n2:email>email@email.com</n2:email>
<n2:password>XXXXXX</n2:password>
<n2:account>999999</n2:account>
</n1:login>
</env:Body>
</env:Envelope>



Netsuite sample:

soap:Body>
<platformMsgs:login>
<platformMsgs:passport>
<platformCore:email>eblack@yahoo.com</platformCore:email>
<platformCore:password>Cracker1</platformCore:password>
<platformCore:account>111111</platformCore:account>
</platformMsgs:passport>
</platformMsgs:login>
</soap:Body>

1 Answer

Adam Keys

12/1/2006 4:38:00 PM

0

On Nov 30, 2006, at 10:22 PM, snacktime wrote:
> Since I'm not a soap expert I thought I would ask. The following soap
> message isn't accepted by Netsuite, and their apache axis server
> throws an exception about not being able to marshal the data.
> Netsuite say's the soap messages should be in doc literal format. Is
> it? Are there any options to soap4r to get it to format messages more
> like the second example below? Their example soap request is
> structured a bit differently, I included it at the bottom of this
> message.
>
>

There is an option to turn on doc/literal in soap4r. I forget where
it is, but the soap4r examples on dev.ctor.org are a treasure trove -
way better than the documentation.

> My soap message, makes server throw a marshalling error.
>
> <?xml version="1.0" encoding="utf-8" ?>
> <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSc...
> xmlns:env="http://schemas.xmlsoap.org/soap/envel...
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...
> <env:Body>
> <n1:login
> xmlns:n1="urn:messages_2_5.platform.webservices.netsuite.com"
> xmlns:n2="urn:core_2_5.platform.webservices.netsuite.com"
> xsi:type="n2:Passport">
> <n2:email>email@email.com</n2:email>
> <n2:password>XXXXXX</n2:password>
> <n2:account>999999</n2:account>
> </n1:login>
> </env:Body>
> </env:Envelope>
>
>

From the example below, looks like your namespace is wrong and
you're missing that passport element. Are you generating these
messages yourself (using soap4r) or are you using a wsdl4r-generated
client?

>
> Netsuite sample:
>
> soap:Body>
> <platformMsgs:login>
> <platformMsgs:passport>
> <platformCore:email>eblack@yahoo.com</platformCore:email>
> <platformCore:password>Cracker1</platformCore:password>
> <platformCore:account>111111</platformCore:account>
> </platformMsgs:passport>
> </platformMsgs:login>
> </soap:Body>
>

--
~akk
http://there...