<globalConfiguration> ... <parameter name="sendMultiRefs" value="false"/> ... </globalConfiguration>
Lubomir ILanovsky wrote:
hi,
I have a web service which should return an array of complex-types. But it does not work properly.
My complex type looks like this:
public class UctovnyZapisDTO { int id; String doklad; float suma; ... } Fields are of type int, float and String only.
Type mapping in WSdeploy.wssd:
<typeMapping
xmlns:ns="http://DefaultNamespace"
qname="ns:UctovnyZapisDTO"
type="java:generated.UctovnyZapisDTO"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
<typeMapping xmlns:ns="urn:UctovnyDennik" qname="ns:ArrayOf_tns1_UctovnyZapisDTO" type="java:generated.UctovnyZapisDTO[]"
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory" deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
When I run my client against this WS I get an exception:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: SimpleDeserializer encountered a child element
, which is NOT expected, in something it was trying to deserialize.
at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:143)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1031)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:369)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1044)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:238)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:386)
at org.apache.axis.client.Call.invoke(Call.java:2402)
at org.apache.axis.client.Call.invoke(Call.java:2301)
at org.apache.axis.client.Call.invoke(Call.java:1758)
at generated.UctovnyDennikWSSoapBindingStub.uctovneZaznamy(UctovnyDennikWSSoapBindingStub.java:149)
at Client.main(Client.java:12)
{http://xml.apache.org/axis/}hostname:Berlin
org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was try
ing to deserialize.
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.client.Call.invoke(Call.java:2405)
at org.apache.axis.client.Call.invoke(Call.java:2301)
at org.apache.axis.client.Call.invoke(Call.java:1758)
at generated.UctovnyDennikWSSoapBindingStub.uctovneZaznamy(UctovnyDennikWSSoapBindingStub.java:149)
at Client.main(Client.java:12)
Caused by: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something
it was trying to deserialize.
at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:143)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1031)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:369)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1044)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:238)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:386)
at org.apache.axis.client.Call.invoke(Call.java:2402)
... 4 more
Interesting is that I do not get this exception in case that web service returns array with only one object in it or in case when the array contains only copies of the same object.
Does anybody know what may be wrong?
thanks