axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcus Mosttler (JIRA)" <>
Subject [jira] Commented: (AXIS-1334) ArraySerializer incompatible using DII with doc/lit services (i.e. .NET)
Date Tue, 09 Nov 2004 19:47:25 GMT
     [ ]
Marcus Mosttler commented on AXIS-1334:

I am not sure if your wsdl is from Axis or something else, but I think there may be a problem
with it.  There should not be any ArrayOf types defined in the wsdl for arrays.
elements SHOULD NOT be named using the convention ArrayOfXXX.

For method input the wsdl should look something more like:
   <element name="echoStringArray">
      <element maxOccurs="unbounded" name="inputStringArray" type="xsd:string"/>


Given the WSDL Description:

<xsd:element name="MyArray1" type="tns:MyArray1Type"/>
<xsd:complexType name="MyArray1Type">
   <xsd:element name="x" type="xsd:string" 
    minOccurs="0" maxOccurs="unbounded"/>

The envelope would serialize as (omitting namespace declarations for clarity):


The above examples approach should take care of the problem with the <item> and .NET.

> ArraySerializer incompatible using DII with doc/lit services (i.e. .NET)
> ------------------------------------------------------------------------
>          Key: AXIS-1334
>          URL:
>      Project: Axis
>         Type: Bug
>     Versions: 1.2 Beta
>  Environment: Windows 2003, JDK 1.4.2_03, Xerces, Axis 1.2 beta, .NET framework 1.1
>     Reporter: Rich Magnuson

> I'm using DII to invoke a doc/lit web service hosted by .NET.  A web method's input parameter
is an array of a simple type, say string.  The WSDL describing the input is:
> <s:complexType name="ArrayOfString">
>   <s:sequence>
>     <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string"
>   </s:sequence>
> </s:complexType>
> So the server expect the array elements to be named <string> as per the 'name'
attribute, but Axis serializes all array elements with <item>, so the SOAP request sent
> <inArr soapenc:arrayType="ns1:ArrayOfString[3]" xmlns:soapenc="">
>     <item xsi:type="xsd:string" xmlns="">string1</item>
>     <item xsi:type="xsd:string" xmlns="">string2</item>
> This is rejected by .NET, which wants the array elements to be named <string> and
the array object to use literal encoding.
> My code is modeled from the DynamicInvoker class in Axis samples (thanks, Dims!).  This
is not a problem using server-side stubs.
> I notice some hardcodes in ArraySerializer and VectorSerializer to always use Constants.QNAME_LITERAL_ITEM

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
If you want more information on JIRA, or have a bug to report see:

View raw message