我有一个 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/