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 Brian Abbott <br...@awarepoint.com> on 2004/01/26 20:57:04 UTC
Custom client-side deserialization...
Hi,
I'm writing an AXIS client deserializer. However, I had problems
with it regarding type identification and handling so, I went back to using
the BeanSerialization facilities provided by AXIS. However, that has the
same issues. The problem is that when I send out a SessionResponse object
which has one element "SessionID", the engine throws a "Bad Types" exception
which is thrown on line 258 of RPCHandler in the org.apache.axis.message
package. The exception I receive is as follows:
Jan 26, 2004 11:43:13 AM org.apache.axis.client.Call invoke
SEVERE: Exception:
org.xml.sax.SAXException: Bad types (class java.lang.String -> class
package.SessionResponse)
at
org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:258)
at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
tionContextImpl.java:963)
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)
And, the XML being sent out and received by the code above is as follows:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:SessionResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="myNS">
<ns1:SessionID
xsi:type="xsd:string">E643B038C5A6EE93ED7B6827B0368338</ns1:SessionID>
</ns1:SessionResponse>
</soapenv:Body>
</soapenv:Envelope>
However, If I send the XML below, no exception is thrown but the value of
SessionID is null.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<SessionResponse>
<ns1:SessionID
xmlns:ns1="myNS">F002D0BEBAA95491ECD2C15B0EBE1A5E</ns1:SessionID>
</SessionResponse>
</soapenv:Body>
</soapenv:Envelope>
Any help or ideas would be greatly appreciated.
Thank you,
Brian Abbott