【问题标题】:Camel - Exception handling in 'sub routes'骆驼 - “子路线”中的异常处理
【发布时间】:2023-04-06 13:07:01
【问题描述】:

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

  • 全球
  • 每条路线

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

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 都会收到通知。我没有办法实现这一目标。

我觉得这将是一个常见的用例 - 以前有没有人碰到过它?

再次感谢您的宝贵时间,

罗伊

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

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

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

    这会强制 Camel 将错误传播到调用路由。

    【讨论】:

      猜你喜欢
      • 2020-05-13
      • 2018-08-15
      • 2013-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-09
      • 1970-01-01
      相关资源
      最近更新 更多