骆驼 - “子路线”中的异常处理
Posted
技术标签:
【中文标题】骆驼 - “子路线”中的异常处理【英文标题】:Camel - Exception handling in 'sub routes' 【发布时间】:2011-11-16 10:50:43 【问题描述】: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 都会收到通知。我没有办法实现这一目标。
我觉得这将是一个常见的用例 - 以前有没有人碰到过它?
再次感谢您的宝贵时间,
罗伊
【问题讨论】:
【参考方案1】:从同事那里得到答案:子路由需要禁用它的错误处理:
from("direct:sendToWebservice").
.errorHandler(noErrorHandler()) // disables error handling for this route
.processRef("massageBeforeSending").
.to("http://webservice.com").
.processRef("massageResponse");
这会强制 Camel 将错误传播到调用路由。
【讨论】:
以上是关于骆驼 - “子路线”中的异常处理的主要内容,如果未能解决你的问题,请参考以下文章