用于多播的StopOnException无法正常工作

时间:2019-06-10 07:37:30

标签: apache-camel

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 个答案:

答案 0 :(得分:1)

在这种用例中,这是可以预期的,因为到JMS的发送操作有效并且不会失败(仅当发送到JMS失败时,它将引发异常并且多播将停止),因此多播成功。您可以在JMS上使用InOut(请求答复)并启用transferException选项,但这需要在JMS的两面都使用Camel。并且也不建议将数据作为Java序列化数据进行交换(例如,异常)。

如果您使用direct端点,但又想将引发的异常传播回多播以使其失败,则为