2016-10-03 10 views
0

Я хотел бы сделать маршрут верблюда от jms до POJO, который может получить TextMessage. Сейчас я маршрут к фасоли, как это:Маршрут верблюда из очереди jms в пользовательский класс в Servicemix 6 (ActiveMQ)

from("jms:person_queue").to("bean:QueueConsumerBean?method=consume") 

Затем я получить строку в моем методе боба. Я предпочел бы иметь собственный класс с методом onMessage и TextMessage. Причина в том, что я хочу использовать подтверждение клиента для сообщения, например транзакцию.

Или есть другой способ использовать клиентский аккаунт?

ответ

1

Пользователь Camel JMS автоматически обрабатывает тип ack для вас. Если маршрут будет успешным, он ответит на сообщение. Если это не так (т. Е. Обмен удаляет обработчик исключений), он откатит его.

BIG ВНИМАНИЕ: поведение CLIENT_ACKNOWLEDGE не является интуитивно понятным .. согласно спецификации JMS .. это извед Расчетном сообщение и все предыдущие в сессии .. это не может рассчитывать на быть извед за сообщение. Если вам требуется сообщение для сообщения, используйте TRANSACTED.