Yep, effect at least disappears under 2.7.9. Seems to be fixed. Thanks, Dan - I will close CXF-5539 as duplicated.
Regards, Andrei. > -----Original Message----- > From: Daniel Kulp [mailto:[email protected]] > Sent: Dienstag, 4. Februar 2014 17:21 > To: [email protected]; Andrei Shakirin > Subject: Re: WS-Addressing with JMS for OneWay: empty response is sent to > client queue > > > Andrei, > > Does it still do this with 2.7.9? Part of this (particularly the message > sent to > "none") should be fixed as part of > https://issues.apache.org/jira/browse/CXF-5434 > > I'd like to double check if anything else is still wrong. > > Dan > > > > On Feb 4, 2014, at 11:17 AM, Andrei Shakirin <[email protected]> wrote: > > > 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. > > -- > Daniel Kulp > [email protected] - http://dankulp.com/blog Talend Community Coder - > http://coders.talend.com
