Hello:
I have a webservice that returns a complex array like

public UserJavaClass[] getUserJavaClassList(){

}

In order not to define the compelx type object for dynamic invocation, I get the xml output. So I define the serializer/deserializer for the complex type type

call.registerTypeMapping(org.w3c.dom.Element.class,
                                xmlQName,
                                ElementSerializerFactory.class,
                                ElementDeserializerFactory.class);

But on deserialization I get the following error:


org.xml.sax.SAXException: Bad types (class [Ljava.lang.Object; -> interface org.w3c.dom.Element)
    at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:286)
    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)
    at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
    at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
    at org.apache.axis.client.Call.invoke(Call.java:2448)
    at org.apache.axis.client.Call.invoke(Call.java:2347)
    at org.apache.axis.client.Call.invoke(Call.java:1804)

If the return value is just UserJavaClass not an array of that, I can get the xml string properly.

Any pointers will be very helpful.

I'm using axis 1.2.1

Thanks,
Ravi

Reply via email to