Doc literal with soap4r

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/XMLSchema"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    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>

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/XMLSchema&quot;
   xmlns:env="http://schemas.xmlsoap.org/soap/envelope/&quot;
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
<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?

···

On Nov 30, 2006, at 10:22 PM, snacktime wrote:

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