JAX-WS: Message is lost when JAX-WS client handler returns false
----------------------------------------------------------------
Key: AXIS2-4862
URL: https://issues.apache.org/jira/browse/AXIS2-4862
Project: Axis2
Issue Type: Bug
Reporter: Rich Scheuerle
Assignee: Rich Scheuerle
Background:
The JAX-WS handler chain is run within the JAX-WS module of Axis2. The JAX-WS
module has its own MessageContext (org.apache.axis2.jaxws.core.MessageContext)
and
this MessageContext has its own "blob" object (Message) that holds the xml
message.
When flow logically enters and leaves the JAX-WS module, information (like the
Message) is propogated to/from the Axis2 MessageContext.
For example, when a JAX-WS client handler edits the xml message (via SAAJ
apis), it is actually editing the Message object on the jaxws core
MessageContext.
After the handler chain completes, the flow of control moves from the JAX-WS
module into the Axis2 outbound transport layer.
At that time, the Message object is propogated to the Axis2 MessageContext as
an OM SOAPEnvelope.
Problem:
A user's JAX-WS client outbound handler's handleMessage method will return
false if the the user wants the handler chain to stop processing the message.
In such cases, the chain is reversed and the outbound message becomes the
inbound message.
The handlers are called and processing returns to the client application which
invoked the BindingProvider (dispatch or proxy).
The problem is that the Message that was edited by the outbound handler(s) is
lost when the chain is reversed.
Thus the client application receives the wrong Message and fails.
Solution:
The JAX-WS runtime was failing to propogate its Message object to the Axis2
MessageContext's OM SOAPEnvelope in this scenario.
The code will be changed to add this copy when the handler chain processing
reverses the handler chain.
I am testing this solution now.
--
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]