StopOnException для многоадресной рассылки не работает - PullRequest
0 голосов
/ 10 июня 2019

Что делает multicast (). StopOnException ()?Я написал маршруты:

from("{{from.route}}").
        multicast().stopOnException().to("jms:queue:carservice","jms:queue:flightservice");

        from("jms:queue:carservice").throwException(new Exception("Car not working")).log("failed message");
        from("jms:queue:flightservice").log("flight message polled");

Даже если я удалю stopOnException, вывод будет выглядеть точно так же.

1 Ответ

1 голос
/ 10 июня 2019

Это ожидаемо в этом случае использования, так как операция отправки в JMS работает и не завершается с ошибкой (только если отправка в JMS завершится неудачно, возникнет исключение и многоадресная рассылка прекратится), поэтому многоадресная передача прошла успешно. Вы можете использовать InOut (запрос ответа) поверх JMS и включить опцию transferException, но для этого необходимо использовать Camel с обеих сторон JMS. И это также не очень хороший совет для обмена данными как сериализованные данные Java (например, исключение).

Если вместо этого вы используете direct конечную точку, если вы хотите, чтобы сгенерированное исключение было передано обратно в многоадресную рассылку, чтобы оно не сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...