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

wrapped document/literal generates wrong SOAP message for arrays within arrays

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None
    • Linux, Axis 1.2RC3

    Description

      First of all, this has been discussed on the users mailing list, please refer to this thread as it may have more up-to-date information:

      http://article.gmane.org/gmane.comp.apache.webservices.axis.user/29082

      I have a data type defined as:

      <complexType name="NamedValue">
      <sequence>
      <element name="name" nillable="true" type="xsd:string" />
      <element name="value" nillable="true" type="xsd:anyType" />
      </sequence>
      </complexType>

      I need the value to be xsd:anyType so that I can send arrays of NamedValue with various types for value.

      On the server side I have a method defined as:

      NamedValue[] login(String username, String password, NamedValue[] options)

      Which in the WSDL the request looks like this:

      • <element name="login">
      • <complexType>
      • <sequence>
        <element name="username" type="xsd:string" />
        <element name="password" type="xsd:string" />
        <element name="options" type="impl:NamedValue" maxOccurs="unbounded" />
        </sequence>
        </complexType>
        </element>

      And the response like this:

      • <element name="loginResponse">
      • <complexType>
      • <sequence>
        <element name="loginReturn" type="impl:NamedValue" maxOccurs="unbounded" />
        </sequence>
        </complexType>
        </element>

      If I create on the client side an options array that looks like this:

      NamedValue[] options = new NamedValue[]
      {
      new NamedValue("dummy1", "dummy_val1"),

      new NamedValue("dummy2",
      new NamedValue[]

      { new NamedValue("dummy2-1", "val2-1"), new NamedValue("dummy2-2", new Integer(314)) }

      )
      };

      Note the array inside the array above.

      A request to the server from an Axis client (latest CVS version of 1.2RC3) looks like this:

      <login xmlns="http://some/namespace">
      <username>tim</username>
      <password>tim</password>
      <options>
      <name>dummy1</name>
      <value xsi:type="xsd:string">dummy_val1</value>
      </options>
      <options>
      <name>dummy2</name>
      <value xsi:type="ns1:NamedValue" xmlns:ns1="http://some/namespace">
      <name>dummy2-1</name>
      <value xsi:type="xsd:string">val2-1</value>
      </value>
      <value xsi:type="ns2:NamedValue" xmlns:ns2="http://some/namespace">
      <name>dummy2-2</name>
      <value xsi:type="xsd:int">314</value>
      </value>
      </options>
      </login>

      The encoding of the array inside the array does not seem right to me, the server ends up with a NamedValue value for "dummy2" instead of a NamedValue[].

      From Anne Thomas Manes:

      You're right. The array within the array should be mapped to this:

      <login xmlns="http://some/namespace">
      <username>tim</username>
      <password>tim</password>
      <options>
      <name>dummy1</name>
      <value xsi:type="xsd:string">dummy_val1</value>
      </options>
      <options>
      <name>dummy2</name>
      <value xsi:type="ns1:NamedValue" xmlns:ns1="http://some/namespace">
      <name>dummy2-1</name>
      <value xsi:type="xsd:string">val2-1</value>
      <name>dummy2-2</name>
      <value xsi:type="xsd:int">314</value>
      </value>
      </options>
      </login>

      I suggest you file a bug report, because Axis is not generating the
      right message structure per the WSDL.

      Anne

      Attachments

        1. diff.txt
          3 kB
          Davanum Srinivas
        2. RemoteLoginManager.wsdl
          6 kB
          Tim K

        Issue Links

          Activity

            People

              gdaniels Glen Daniels
              timkagle Tim K
              Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: