Details
-
Bug
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
1.3, 1.4
-
None
-
Windows 2003 Server, BEA Weblogic 10
Description
I have a web service that returns an array of elements.
The dynamically generated wsdl is correct...each element of the array should have the name "item" as defined:
<complexType name="ArrayOf_SignatureType">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="tns3:SignatureType"/>
</sequence>
</complexType>
However, when invoking the service, Axis returns each item in the array with the element name of its parent! like so:
<signatures>
<signatures xsi:type="ns4:ProjSignatureType" xmlns:ns4="http://signatures.approvals.apps.mis.jlab.org">
<abbrev>PROJ</abbrev>
<projAbbrev>ITGEN</projAbbrev>
</signatures>
<signatures xsi:type="ns5:OrgSignatureType" xmlns:ns5="http://signatures.approvals.apps.mis.jlab.org">
<abbrev>ORG</abbrev>
<orgAbbrev>ITO</orgAbbrev>
</signatures>
</signatures>
This makes it impossible to use Axis 1.3/4 with dynamically generated WSDL's because the client expects elements of name "item" and gets elements that are of the same name as the parent!
We need either the WSDL generation to have the correct array element names, or the service to create the correct names.
To work around this issue, I have to change the Axis source code and rebuild using Ant or I have to create a WSDL by hand and change it so that the array elements are what Axis sends .... (this is difficult to manage in development/production enviroments because the wsdlsoap:address always needs to be changed and I can't deploy the same WAR in both places without changing the WSDL).
It seems that this has been an open issue since Axis version 1.3.....is anyone going to fix?