# Actionwebservice: order of parameters in SOAP message

**URL:** <https://www.ruby-forum.com/t/actionwebservice-order-of-parameters-in-soap-message/151957>\
**Category:** Rails\
**Created:** [October 28, 2008, 12:17pm UTC](https://www.ruby-forum.com/t/actionwebservice-order-of-parameters-in-soap-message/151957 "2008-10-28T12:17:08Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ahead](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c77e96/32.png) [@ahead](https://www.ruby-forum.com/u/ahead)\
**Post date:** [October 28, 2008, 12:17pm UTC](https://www.ruby-forum.com/t/actionwebservice-order-of-parameters-in-soap-message/151957/1 "2008-10-28T12:17:08Z")

</div>

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](http://xmlns.tre.se/bss/AAAService)”\>  
  
Foo  
  
false  
\</ns1:Update\>  
\</soapenv:Body\>

… as valid as:

soapenv:Body  
\<ns1:someMethod xmlns:ns1=“[http://xmlns.tre.se/bss/AAAService](http://xmlns.tre.se/bss/AAAService)”\>  
false  
  
Foo  
  
\</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\>  
…

---

<div class="post-metadata">

**Author:** ![ahead](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c77e96/32.png) [@ahead](https://www.ruby-forum.com/u/ahead)\
**Post date:** [October 28, 2008, 12:44pm UTC](https://www.ruby-forum.com/t/actionwebservice-order-of-parameters-in-soap-message/151957/2 "2008-10-28T12:44:30Z")

</div>

Minor typo above, the requests should of course be:

soapenv:Body  
\<ns1:someMethod xmlns:ns1=“[http://xmlns.tre.se/bss/AAAService](http://xmlns.tre.se/bss/AAAService)”\>  
  
Foo  
  
false  
\</ns1:someMethod\>  
\</soapenv:Body\>

and:

soapenv:Body  
\<ns1:someMethod xmlns:ns1=“[http://xmlns.tre.se/bss/AAAService](http://xmlns.tre.se/bss/AAAService)”\>  
false  
  
Foo  
  
\</ns1:someMethod\>  
\</soapenv:Body\>
