I did a prototype with Camel and so far it looks amazingly simple (in terms of how much code/config it took) and powerful.
Unless there are hidden issues down the road, Camel just rocks. Pavel On Sun, Oct 4, 2009 at 4:24 PM, Pavel <[email protected]> wrote: > Christian - thanks a lot for response. > > I was looking into both 2.2 and 2.2.3 sources and it seems like correlation > map is always populated for anything but one-way exchanges: > correlationMap.put(correlationId, exchange); <<< all logic branches except > one way call this > > Also I see how sendExchange() calls JMSFactory.createJmsListener() that > would create a brand new DefaultMessageListenerContainer per exchange. I > wonder if thread settings would be effective with that approach. > > And while I see trunk has changed that to jmsTemplate.receiveSelected(), I > realize one conceptual problem is still there: even if correlation part is > solved, application still needs to send something in order to receive > something. > > With clustered client and possible node failures in mind, I think I won't > be able to use async implementation as is. > > So my options are > * customize CXF client, like what I did. And the more I look at it the more > I realize I extended part that was not designed for extension. I get ability > to leverage JMS endpoint on server side though for free. > > * Use 2 two-way clients as you suggested. I'll look into other options > first, as there are service consumers that would still want to call it > synchronously. > > * Give up on the idea to reuse SOAP over JMS on server side and create > another invocation layer (IL), like Camel-backed one you advised. It > probably would be the best option, assuming that > - it is possible to route all messages to original web service > implementor, even though IL has changed > - Exceptions/faults are somehow delivered to client too. > - (Optional, but nice to have) JAXB context is borrowed from endpoint > metadata. > > Is it something Camel could do? > > Thanks a lot for your help! > Pavel > >
