[ 
https://issues.apache.org/jira/browse/AXIS2-5082?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13188417#comment-13188417
 ] 

Stephen G Diesner commented on AXIS2-5082:
------------------------------------------

I subsequently discovered that the ordering of elements via a POJO service was 
undetermistic, the order depending on the JVM vendor (and possibly JVM 
version).  A bit of debugging found that the cause of this was the vendor's 
implementation of java.beans.Introspector from which it got an array of 
property descriptors.  It was the ordering of elements in this array which 
resulted in object element sequencing.

In Axis 1.5.1 I patched the kernel's implemenation of 
DefaultSchmaGenerator.java at line 547 to sort the array using Array.sort( ).  
Interestlying, there already was a Comparator class defined in 
DefaultSchmaGenerator so I used that.  This resulted in the element ordering 
being alphabetical.  I have not fully tested this patch but early indications 
show that it is working without other issues.
                
> POJO service has incorrect element sequence in response when useOriginalwsdl 
> set to true
> ----------------------------------------------------------------------------------------
>
>                 Key: AXIS2-5082
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5082
>             Project: Axis2
>          Issue Type: Bug
>         Environment: Windows XP, Websphere Application Server 6.1.
>            Reporter: Stephen G Diesner
>
> Axis2 1.6.0.
> Using POJO service with parameter useOriginalwsdl set to true.
> Original WSDL as incorporated in aar file is returned successfully.  Service 
> call works but the sequence of elements as specified in WSDL is not followed.
> Example:
> WSDL gives:
>             <xs:complexType name="CardholderDetailsEdo">
>                 <xs:sequence>
>                     <xs:element maxOccurs="unbounded" minOccurs="0" 
> name="cardholderAddresses" nillable="true" type="ax25:CardholderAddressEdo"/>
>                     <xs:element minOccurs="0" name="dateOfBirth" 
> nillable="true" type="ax22:DateEdo"/>
>                     <xs:element minOccurs="0" name="forename" nillable="true" 
> type="xs:string"/>
>                     <xs:element minOccurs="0" name="registeredName" 
> nillable="true" type="xs:string"/>
>                     <xs:element minOccurs="0" name="surname" nillable="true" 
> type="xs:string"/>
>                     <xs:element minOccurs="0" name="title" nillable="true" 
> type="ax22:CodedValueEdo"/>
>                     <xs:element minOccurs="0" name="tradingName" 
> nillable="true" type="xs:string"/>
>                 </xs:sequence>
>             </xs:complexType>
>                       
>                       
> Soap response:
>               <ns:cardholderDetails>
>                   <ns:surname>ENGINE</ns:surname>
>                   <ns:tradingName xsi:nil="true" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
>                   <ns:forename>IVOR THE</ns:forename>
>                   <ns:registeredName xsi:nil="true" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
>                   <ns:cardholderAddresses>
>                      <ns:country>
>                         <ns:code>GB</ns:code>
>                         <ns:localCode>0</ns:localCode>
>                         <ns:decode>UNITED KINGDOM</ns:decode>
>                      </ns:country>
>                      <ns:postcode>TN33 0RE</ns:postcode>
>                      <ns:type>
>                         <ns:code>U</ns:code>
>                         <ns:localCode>11</ns:localCode>
>                         <ns:decode>UK</ns:decode>
>                      </ns:type>
>                      <ns:residentialStatus>
>                         <ns:code/>
>                         <ns:localCode>6</ns:localCode>
>                         <ns:decode>UNKNOWN</ns:decode>
>                      </ns:residentialStatus>
>                      <ns:purpose>
>                         <ns:code>R</ns:code>
>                         <ns:localCode>1</ns:localCode>
>                         <ns:decode>RESIDENTIAL</ns:decode>
>                      </ns:purpose>
>                      <ns:lines>EXGVXD AITHMEIOX</ns:lines>
>                      <ns:lines>HITVXD VIRX</ns:lines>
>                      <ns:lines>OXKVXOWEHCX</ns:lines>
>                      <ns:lines>CIGGVX</ns:lines>
>                      <ns:lines>XIOG OIOOXZ</ns:lines>
>                   </ns:cardholderAddresses>
>                   <ns:title>
>                      <ns:code>MR</ns:code>
>                      <ns:localCode>1</ns:localCode>
>                      <ns:decode>MR</ns:decode>
>                   </ns:title>
>                   <ns:dateOfBirth>
>                      <ns:day>19</ns:day>
>                      <ns:year>1948</ns:year>
>                      <ns:month>10</ns:month>
>                   </ns:dateOfBirth>
>                </ns:cardholderDetails>
>                          

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to