I have a document / literal service with a single method, which has a void
return type. The call executes correctly however the server returns a
non-empty soap body. The element it creates is no where in the wsdl. The
client then throws this exception.
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException:
Deserializing parameter 'messageResponse': could not find
deserializer for type {http://xml.apache.org/axis/}Void
at
org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:269)
at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
tionContextImpl.java:1001)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:159)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
1050)
at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:196)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:310)
at org.apache.axis.client.Call.invoke(Call.java:2381)
at org.apache.axis.client.Call.invoke(Call.java:2280)
at org.apache.axis.client.Call.invoke(Call.java:1741)
at
test.clients.axis.messaging.MessengerBindingStub.send(MessengerBindingStub.j
ava:142)
at test.clients.axis.messaging.MessageEx.send(MessageEx.java:44)
at
test.clients.axis.messaging.MessageProducer.main(MessageProducer.java:51)
I am using the latest Axis source as of this morning. There is a check in
Call.java around line 2422 which ignores the return type if the operation is
supposed to have a void return type. However, the client fails before it
gets that far.
Is this a bug or am I missing some configuration setting? Is there supposed
to be a deserializer for Void?
Aaron Bajek