camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Schneider <>
Subject Re: Transacted CXF-Consumer from queue
Date Fri, 23 Mar 2012 09:18:15 GMT
Perhaps you can mark the route as inout. So the cxf from endpoint could 
get the response but of course does not have to reply.

I think for transacted routes we should make this the default. Can you 
open a jira issue for that?


Am 23.03.2012 09:49, schrieb Stefan Burkard:
> My problem seems to be that, with MEP InOnly, a CXF endpoint consuming
> from a queue does not "see" an exception that occurs later in the
> route and therefore commits the consumptions to the queue.
> Does anybody know how I can make this exception visible to CXF? I
> think this should be possible, otherwise it would not be possible to
> read asynchronous and transacted with CXF from a queue.
> Thanks
> Stefan
> On Wed, Mar 21, 2012 at 17:26, Stefan Burkard<>  wrote:
>> Hi Willem
>> I suspected something like this - I am a Camel beginner and therefore
>> didn't know if this is a bug or a feature :-)
>> My case is to make the following routes transactional:
>> 1. I am consuming messages with a CXF bean endpoint from an ActiveMQ
>> queue to get an unmarshalled Exchange (the producer sends - fire and
>> forget - SOAP messages with mtom attachments to the queue)
>> 2. I am sending the Exchanges with ".to(direct:...)" to the main route
>> of my module
>> 3. The main route processes the Exchanges
>> To check how these routes behave under error conditions, I am
>> injecting intentionally an exception into the direct-endpoint
>> (to"direct:...") of the first route. Therefore I am getting (as
>> expected) the exception and afterwards the queue is empty. This means
>> my route is not secured against message loss. If I understand you
>> correctly, the exception that occurs during route-processing is not
>> recoginsed by the CXF-consumer and therefore the consumer commits the
>> message consumption to the queue.
>> So, how can I make this asynchronous SOAP over JMS usecase
>> transactional so that the message remains in the queue if an error
>> occurs during route processing?
>> Thanks for your help
>> Stefan
>> On Wed, Mar 21, 2012 at 14:23, Willem Jiang<>  wrote:
>>> If you are using inOnly MEP, camel-cxf producer will not know any thing
>>> about the exception.
>>> I'm not sure what kind of error that you get.
>>> On 3/21/12 5:54 PM, Burkard Stephan wrote:
>>>> Hello
>>>> I try to get running a SOAP over JMS usecase with the configuration
>>>> outlined here:
>>>> ache-camel.html
>>>> <
>>>> pache-camel.html>
>>>> My webservice is InOnly, it does not respond to requests. The client
>>>> therefore sends SOAP messages to a queue without waiting for an answer.
>>>> On the server side camel consumes the messages.
>>>> I tried to test transaction behaviour of my camel routes with unittests
>>>> where I advice the route with exceptions that occur at specific
>>>> entpoints. This works fine when I consume from the queue directly
>>>> (activemq:queue:...). If an error occurs the message is not commited and
>>>> it stays in the queue.
>>>> When I use a CXF endpoint to consume messages (cxf:bean:...), messages
>>>> are lost when an exception occurs. They seem to be commited in activemq
>>>> before or despite an error occurs.
>>>> Therefore I tried to read first from the queue directly, forward the
>>>> message to a direct endpoint and consume the messages with CXF from the
>>>> direct endpoint. But in this case the message is also lost if an error
>>>> occurs after consuming the message with CXF.
>>>> Before posting routes and configuration details, I just would like to
>>>> know if this is "normal" behaviour of the CXF endpoint with inOnly MEP
>>>> or if the messages should stay in the queue as I expect?
>>>> Perhaps this is the same problem as described in this thread:
>>>> ing-td4471175.html
>>>> <
>>>> ling-td4471175.html>    ?
>>>> Thanks for your help
>>>> Stefan
>>> --
>>> Willem
>>> ----------------------------------
>>> FuseSource
>>> Web:
>>> Blog: (English)
>>> (Chinese)
>>> Twitter: willemjiang
>>> Weibo: willemjiang

Christian Schneider

Open Source Architect
Talend Application Integration Division

View raw message