java - 如何在Camel中的路由之间传递异常

标签 java apache-camel

我有一个 Camel 应用程序,它调用 RESTFul 服务。

我向我的客户公开 RESTful 和 SOAP 接口(interface)

RESTful 和 SOAP 路由最终都会调用一个公共(public)路由,该路由实际上调用 RESTFul 服务。

所以,有点像

<camel:route>
    <camel:from uri="RESTFUL_INTERFACE" />
    <camel:to uri="direct:CALLEXTERNAL_REST_SERVICE" />
    <camel:to uri="ADAPT_RESPONSE" />
</camel:route>

<camel:route>
    <camel:from uri="SOAP_INTERFACE" />
    <camel:to uri="direct:CALLEXTERNAL_REST_SERVICE" />
    <camel:to uri="ADAPT_RESPONSE" />
</camel:route>

<camel:route>
    <camel:from uri="direct:CALLEXTERNAL_REST_SERVICE" />
    <camel:to uri="EXTERNAL_RESTFUL_SERVICE" />
</camel:route>

如果我对 EXTERNAL_REST_SERVICE 的调用失败(例如连接被拒绝),那么我需要在 REST 和 SOAP 路由中采取不同的操作。据我所知, onException 仅适用于指定的路由。

如何将 direct:CALLEXTERNAL_REST_SERVICE 中的故障传达回“外部”路由?

最佳答案

您的 Camel 上下文可以有一个 onException (这将应用于其中的所有路由)。从那里开始,onException 只是另一条路线。例如,您可以拥有一个 CBR,并根据异常发生的位置指定下一步要做什么。

关于java - 如何在Camel中的路由之间传递异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36455759/

相关文章:

java - 无法从静态上下文引用非静态变量 data_in

java - 如果没有从 FTP 提取文件,则发送电子邮件通知

java - 如何在 spring application.properties 中注入(inject)包含 ${...} 的字符串

java - 拆分消息并在 Camel 中路由它们

java - 如何使用JAVA程序丢包

用于验证id的java正则表达式

java - 无法加载 JDBC 驱动程序类

java - 我可以将 Velocity 模板与 InputStreams 一起使用吗?

java - 端点的 Camel 处理器

Java 具有随机颜色的弹跳球应用程序