Forum: Ruby on Rails Actionwebservice: order of parameters in SOAP message

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Abigail H. (Guest)
on 2008-10-28 13:17
Hi,

I have a strange SOAP interopability issue with
actionwebservice/rails2.0 (server) and Axis2 (client)

Should the order of parameters in a SOAP request matter? I.e is...

<soapenv:Body>
    <ns1:someMethod xmlns:ns1="http://xmlns.tre.se/bss/AAAService">
    <myComplex>
        <theA>Foo</theA>
    </myComplex>
    <aBoolean>false</aBoolean>
    </ns1:Update>
</soapenv:Body>

... as valid as:

<soapenv:Body>
    <ns1:someMethod xmlns:ns1="http://xmlns.tre.se/bss/AAAService">
    <aBoolean>false</aBoolean>
    <myComplex>
        <theA>Foo</theA>
    </myComplex>
    </ns1:Update>
</soapenv:Body>

(In the first request snippet, the complex object is sent before the
boolean)

The API classfile contains:

 api_method :someMethod, :expects => [ {:myComplex => MyComplex},
{:aBoolean => :boolean} ],
                     :returns => [ ResponseMsg ]

And the generated WSDL:

 <xsd:complexType name="MyComplex">
    <xsd:all>
      <xsd:element name="theA" type="xsd:string"/>
    </xsd:all>
  </xsd:complexType>
...
  <message name="someMethod">
    <part name="myComplex" type="typens:MyComplex"/>
    <part name="aBoolean" type="xsd:boolean"/>
  </message>
Abigail H. (Guest)
on 2008-10-28 13:44
Minor typo above, the requests should of course be:

<soapenv:Body>
    <ns1:someMethod xmlns:ns1="http://xmlns.tre.se/bss/AAAService">
    <myComplex>
        <theA>Foo</theA>
    </myComplex>
    <aBoolean>false</aBoolean>
    </ns1:someMethod>
</soapenv:Body>

and:

<soapenv:Body>
    <ns1:someMethod xmlns:ns1="http://xmlns.tre.se/bss/AAAService">
    <aBoolean>false</aBoolean>
    <myComplex>
        <theA>Foo</theA>
    </myComplex>
    </ns1:someMethod>
</soapenv:Body>
This topic is locked and can not be replied to.