You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by ma...@vialbost.org on 2004/03/01 18:29:59 UTC

Deserialization problem: Axis client and ClassLoader

Hi all,
I use Axis 1.1 to consume the Google WebService.
I generated stubs for Google webservice, and when I put Axis jars in the same 
ClassLoader as my application's, it works fine.

Unfortunately, my application will ultimately run in production within a 
different ClassLoader (the axis jars are in the application ClassLoader's 
parent).
As I would have expected, at runtime, Axis couldn't find a deserializer (see 
stacktrace below).
Is there a way to specify which ClassLoader Axis should use to find its 
deserializer ?

SEVERE: Exception:
org.xml.sax.SAXException: No deserializer defined for array type 
(urn:GoogleSearch}DirectoryCategory
	at org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement
(ArrayDeserializer.java:296)
	at org.apache.axis.encoding.DeserializerImpl.startElement
(DeserializerImpl.java:428)
	at org.apache.axis.encoding.DeserializationContextImpl.startElement
(DeserializationContextImpl.java:976)
	at org.apache.axis.message.SAX2EventRecorder.replay
(SAX2EventRecorder.java:198)
	at org.apache.axis.message.MessageElement.publishToHandler
(MessageElement.java:722)
	at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
	at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
	at org.apache.axis.client.Call.invoke(Call.java:2272)
	at org.apache.axis.client.Call.invoke(Call.java:2171)
	at org.apache.axis.client.Call.invoke(Call.java:1691)
	at custom.webservice.Google.rule.GoogleSearchBindingStub.doGoogleSearch
(GoogleSearchBindingStub.java:251)
	at custom.webservice.Google.Google.doExecute(Google.java:117)
[...]

Thanks,
Marc