Uploaded image for project: 'Axis'
  1. Axis
  2. AXIS-1673

Problem with array of beans in 1.2RC2 (wrapped/literal)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 1.2RC2
    • None
    • None
    • Server : Windows 2000
      Client : Windows Xp
      JVM : Sun 1.4.2

    Description

      There's a strange bug in axis 1.2RC2, dealing with array of beans.

      The signature of the called method is :
      public ArrayBean echoArrayBean(ArrayBean param);

      ArrayBean is defined like this :
      public class ArrayBean implements Serializable {
      private String stringData;
      private SimpleBean[] simpleBeanArrayData;
      ... accessors ...
      }

      And SimpleBean :
      public class SimpleBean implements Serializable

      { private String stringData; private int intData; ... accessors ... } The corresponding part of the WSDL generated by Axis follows (in different namespaces, but we don't care here) : <element name="echoArrayBean"> <complexType> <sequence> <element name="in0" type="tns1:ArrayBean"/> </sequence> </complexType> </element> <complexType name="ArrayOf_tns1_SimpleBean"> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="item" type="tns1:SimpleBean"/> </sequence> </complexType> <complexType name="SimpleBean"> <sequence> <element name="intData" type="xsd:int"/> <element name="stringData" nillable="true" type="xsd:string"/> </sequence> </complexType> <complexType name="ArrayBean"> <sequence> <element name="simpleBeanArrayData" nillable="true" type="impl:ArrayOf_tns1_SimpleBean"/> <element name="stringData" nillable="true" type="xsd:string"/> </sequence> </complexType> What's important here is that "item" is correctly specified as an element of Array_Of_tns1_SimpleBean. When I try to invoke this operation with a Weblogic client, I get the following exception : java.rmi.RemoteException: SOAP Fault:javax.xml.rpc.soap.SOAPFaultException: org.xml.sax.SAXException: Invalid element in test.bean.SimpleBean - item The corresponding part in the soap message is : <n1:echoArrayBean><n1:in0><n2:simpleBeanArrayData xsi:type="n1:ArrayOf_tns1_SimpleBean"> <n1:item xsi:type="n2:SimpleBean"><n2:intData>-123456</n2:intData><n2:stringData>ces données sontcomplexes [à@}

      ]</n2:stringData></n1:item>
      <n1:item xsi:type="n2:SimpleBean"><n2:intData>-123456</n2:intData><n2:stringData>ces données sontcomplexes [à@}]</n2:stringData></n1:item>
      </n2:simpleBeanArrayData><n3:stringData>data</n3:stringData></n1:in0></n1:echoArrayBean>

      This message seems to be correct, according to the WSDL. Yet, Axis doesn't like it :/

      Note : we just tried with an Axis client: same soap message, same behaviour.

      Julien Wajsberg

      Attachments

        1. wrapped_literal_array_test.zip
          25 kB
          Jongjin Choi
        2. BeanPropertyDescriptor-diff.txt
          3 kB
          Jongjin Choi

        Activity

          People

            Unassigned Unassigned
            flashfr Julien Wajsberg
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: