[ 
https://issues.apache.org/jira/browse/AXIS2-3418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Amila Chinthaka Suriarachchi resolved AXIS2-3418.
-------------------------------------------------

    Resolution: Fixed

already fixed. now Pojo serializes the response as given in the wsdl.

> Unexpected subelement - pojo - Inherited Complex Type
> -----------------------------------------------------
>
>                 Key: AXIS2-3418
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3418
>             Project: Axis2
>          Issue Type: Bug
>          Components: adb
>    Affects Versions: 1.3
>         Environment: jdk jdk1.5.0_14, axis2 1.3, Fedora 8, Intel x86
>            Reporter: Mehmet Döngel
>            Assignee: Amila Chinthaka Suriarachchi
>            Priority: Critical
>         Attachments: AddressBookService_NotWorking.wsdl, 
> AddressBookService_Working.wsdl, BeanUtil.java, BeanUtil.java, BeanUtil.java, 
> pojo_NotWorking.tar.gz, pojo_Working.tar.gz
>
>
> $AXİS2_HOME/samples/pojo   sample,
> I created ZEntry class with "String custom" field and updated Entry class to 
> extend ZEntry class, after deployment I build and run adb client and got 
> org.apache.axis2.databinding.ADBException: Unexpected subelement city 
> exception. 
> Response Message:
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope";>
>     <soapenv:Body>
>         <ns:findEntryResponse xmlns:ns="http://service.addressbook.sample";>
>             <ns:return xmlns:ax21="http://entry.addressbook.sample/xsd"; 
> type="sample.addressbook.entry.Entry">
>                 <ax21:city>Sesame City</ax21:city>
>                 <ax21:name>Abby Cadabby</ax21:name>
>                 <ax21:postalCode>11111</ax21:postalCode>
>                 <ax21:state>Sesame State</ax21:state>
>                 <ax21:street>Sesame Street</ax21:street>
>                 <ax21:custom 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:nil="true"/>
>             </ns:return>
>         </ns:findEntryResponse>
>     </soapenv:Body>
> </soapenv:Envelope>
> Reason for that exception is  that generated stub expects first "custom" 
> element because schema for Entry and ZEntry class in  wsdl is :
> *****************************************************************************************************************************************************************************************************************
>         <xs:schema xmlns:ax21="http://entry.addressbook.sample/xsd"; 
> attributeFormDefault="qualified" elementFormDefault="qualified" 
> targetNamespace="http://entry.addressbook.sample/xsd";>
>             <xs:complexType name="ZEntry">
>                 <xs:sequence>
>                     <xs:element minOccurs="0" name="custom" nillable="true" 
> type="xs:string"/>
>                 </xs:sequence>
>             </xs:complexType>
>             <xs:complexType name="Entry">
>                 <xs:complexContent>
>                     <xs:extension base="ax21:ZEntry">
>                         <xs:sequence>
>                             <xs:element minOccurs="0" name="city" 
> nillable="true" type="xs:string"/>
>                             <xs:element minOccurs="0" name="name" 
> nillable="true" type="xs:string"/>
>                             <xs:element minOccurs="0" name="postalCode" 
> nillable="true" type="xs:string"/>
>                             <xs:element minOccurs="0" name="state" 
> nillable="true" type="xs:string"/>
>                             <xs:element minOccurs="0" name="street" 
> nillable="true" type="xs:string"/>
>                         </xs:sequence>
>                     </xs:extension>
>                 </xs:complexContent>
>             </xs:complexType>
>         </xs:schema>
> *****************************************************************************************************************************************************************************************************************
> Reason for expected response (first Entry fields 
> (city,name,postalCode,state,street) and then super class ZEntry fields 
> (custom) ) is   BeanUtil class takes all the fields and put to an arraylist 
> and then sort that array list. Because ZEntry.custom field comes after 
> Entry.xxx fields,custom element is serialized last.
> When I use AEntry class instead of ZEntry class, no problem occurs.
> My solution to this problem is changing BeanUtil class in such a way that,  
> first get super class properties and sort that properties and then put to an 
> arrayList containing all properties, and after that get sub class properties 
> and sort that properties and then put to that arrayList.
> Any other ideas, solutions?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to