Hi,

I am confused with one effect appearing in case of using WS-Addressing, oneway 
message pattern and JMS transport.

The problem is that service tries to send empty response to the ReplyTo JMS 
queue for oneway operation if WS-A is active.
Empty message is sent by OneWayProcessorInterceptor. Without WS-A it is not a 
problem, because JMSDestination.sendExchange() checks if exchange is oneway and 
if yes, returns immediately.
But if WS-A is active, MAPAggregator creates decoupled destination with 
JMSConduit as a sender. JMSConduit.sendExchange() doesn't produce any checks 
for oneway and it tries to send empty response to ReplyTo address. 
Even if ReplyTo is anonymous or none, empty response is sent using http conduit 
to http://www.w3.org/2005/08/addressing/none address :)

The question does the rebaseResponse and decoupled destination make sense for 
oneway at all? Basically client shouldn't expect any response in this case 
(only 202 for HTTP).
Could this check in MAPAggregator:

                if (isOneway
                    || !ContextUtils.isGenericAddress(maps.getReplyTo())) {
                    InternalContextUtils.rebaseResponse(maps.getReplyTo(),
                                                maps,
                                                message);
                }

Be replaced to something like:
                if (!isOneway
                    && !ContextUtils.isGenericAddress(maps.getReplyTo())) {
                    InternalContextUtils.rebaseResponse(maps.getReplyTo(),
                                                maps,
                                                message);
                }

Am I missing something?

Regards,
Andrei.

Reply via email to