Anonymous WS operation invocation
---------------------------------
Key: AXIS2-3032
URL: https://issues.apache.org/jira/browse/AXIS2-3032
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: kernel
Affects Versions: 1.2
Reporter: Severin Ecker
Priority: Minor
I'm not 100% positive that this really is a bug, but since i got no reply
neither in the users nor in the developers list i'm filing it here to raise
attention.
I have a webservice (using axis2 to handle the soap stuff) and I wanted to use
this service with both, WSDL-based access (i was using SOAPui for this) and
anonymous operation invocation (with the ServiceClient.sendReceive(OMElement
elem) method).
Using WSDL base access everything works as intended (e.g.: using the following
SOAP envelope)
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns="http://myNS.com">
<soap:Header/>
<soap:Body>
<ns:GetCapabilitiesRequest/>
</soap:Body>
</soap:Envelope>
At service implementation site within the method getCapabilities(OMElement e);
(<-- this is the invoked method)
the parameter e is
<ns:GetCapabilitiesRequest/>
So far so good.
Now when trying to access anonymously I have to encode the operation somewhere
so I have the following envelope
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns="http://myNS.com">
<soap:Header/>
<soap:Body>
<ns:getCapabilities>
<in0>
<ns:GetCapabilitiesRequest/>
</in0>
</ns:getCapabilities>
</soap:Body>
</soap:Envelope>
The request gets resolved correcty by axis (using the
SOAPMessageBodyBasedDispatcher) BUT here's the catch. Suddenly the parameter
which the (correct!) service operation gets is
<ns:getCapabilities>
<in0>
<ns:GetCapabilitiesRequest/>
</in0>
</ns:getCapabilities>
This is rather useless because in that case the service operation must be ready
to handle all kinds of different parameters depending on the invocation method
used!? Shouldn't the SOAPMessageBodyBasedDispatcher remove the
'meta-informational' stuff (in this case the getCapabilities (aka
operation-name), and in0 (parameter direction)) and only send the real
parameter to the operation?
If I'm mistaken, how can I invoke an operation anonymously and does not have
the problem of ending up with wrong parameters on the service side?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]