Camel - “子路线”中的异常处理

2024-06-05

Camel 显式处理两个“范围”的错误处理:

  • Global
  • 每条路线

我遇到的问题是“子路由”中抛出异常。例如,我有这条路线:

from("direct:sendToWebservice").
    .processRef("massageBeforeSending").
    .to("http://webservice.com").
    .processRef("massageResponse");

然后我还有另外两条路由需要将消息发送到网络服务:

from(direct:fromSystemA").
    .errorHandler(deadLetterChannel("direct:TellSystemA")).
    .to("direct:sendToWebservice");

from(direct:fromSystemB").
    .errorHandler(deadLetterChannel("direct:TellSystemB")).
    .to("direct:sendToWebservice");

我希望发生的是,如果 Web 服务路由抛出异常,它会传播到调用者,并且系统 A 或系统 B 都会收到通知。我看不出有什么办法可以实现这一目标。

我觉得这将是一个常见的用例——以前有人遇到过它吗?

感谢你的宝贵时间,

Roy


从同事那里得到答案:子路由需要禁用它的错误处理:

from("direct:sendToWebservice").
    .errorHandler(noErrorHandler())     // disables error handling for this route
    .processRef("massageBeforeSending").
    .to("http://webservice.com").
    .processRef("massageResponse");

这迫使 Camel 将错误传播到调用路由。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Camel - “子路线”中的异常处理 的相关文章

随机推荐