You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Davanum Srinivas (JIRA)" <ax...@ws.apache.org> on 2005/07/12 15:35:12 UTC
[jira] Commented: (AXIS-2095) Items in an array seems to have the wrong name compared to what the WSDL says.
[ http://issues.apache.org/jira/browse/AXIS-2095?page=comments#action_12315564 ]
Davanum Srinivas commented on AXIS-2095:
----------------------------------------
did you generate the server impl using wsdl2java? (or did u use hand written wsdd's)
-- dims
> Items in an array seems to have the wrong name compared to what the WSDL says.
> ------------------------------------------------------------------------------
>
> Key: AXIS-2095
> URL: http://issues.apache.org/jira/browse/AXIS-2095
> Project: Apache Axis
> Type: Bug
> Versions: 1.2.1
> Reporter: Ted Sanne
>
> My WSDL describes an array (this is only a small fragment of the complete WSDL):
> <complexType name="PropertyValueDTO">
> <sequence>
> <element name="URI" type="xsd:boolean"/>
> <element name="dateTime" type="xsd:boolean"/>
> <element name="hasHistory" type="xsd:boolean"/>
> <element name="id" nillable="true" type="xsd:string"/>
> <element name="label" nillable="true" type="xsd:string"/>
> <element name="source" nillable="true" type="xsd:string"/>
> <element name="timestamp" nillable="true" type="xsd:dateTime"/>
> <element name="unit" nillable="true" type="xsd:string"/>
> <element name="updated" nillable="true" type="xsd:dateTime"/>
> <element name="value" nillable="true" type="xsd:string"/>
> </sequence>
> </complexType>
> <complexType name="ArrayOfPropertyValueDTO">
> <sequence>
> <element maxOccurs="unbounded" minOccurs="0" name="item" type="impl:PropertyValueDTO"/>
> </sequence>
> </complexType>
> <complexType abstract="true" name="TraceableDetailsDTO">
> <sequence>
> <element name="hasExternalLinks" type="xsd:boolean"/>
> <element name="label" nillable="true" type="xsd:string"/>
> <element name="properties" nillable="true" type="impl:ArrayOfPropertyValueDTO"/>
> </sequence>
> </complexType>
> When calling the webservice the return looks like this:
> <properties>
> <properties>
> ...
> </properties>
> <properties>
> and the client throws the following:
> org.xml.sax.SAXException: Invalid element in com.tracetracker.enterprise.twa.ArrayOfPropertyValueDTO - properties
> at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:258)
> at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
> at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
> at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
> ...
> It seems the client expects a structure like this:
> <properties>
> <item>
> ...
> </item>
> <properties>
> Having a go at debugging the ArraySerializer I can see in my debugger that both itemQName and componentQName is null, so elementName is never changed from "properties" to "item":
> // For the maxOccurs case, each item is named with the QName
> // we got in the arguments. For normal array case, we write an element with
> // that QName, and then serialize each item as <item>
> QName elementName = name;
> Attributes serializeAttr = attributes;
> if (!maxOccursUsage) {
> serializeAttr = null; // since we are putting them here
> context.startElement(name, attributes);
> if (itemQName != null)
> elementName = itemQName;
> else if(componentQName != null)
> elementName = componentQName;
> }
> Can anyone tell me what has gone wrong here?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira