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,输出看起来也完全一样。
答案 0 :(得分:1)
在这种用例中,这是可以预期的,因为到JMS的发送操作有效并且不会失败(仅当发送到JMS失败时,它将引发异常并且多播将停止),因此多播成功。您可以在JMS上使用InOut(请求答复)并启用transferException
选项,但这需要在JMS的两面都使用Camel。并且也不建议将数据作为Java序列化数据进行交换(例如,异常)。
如果您使用direct
端点,但又想将引发的异常传播回多播以使其失败,则为
。