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

时间:2016-04-06 15:33:34

标签: java apache-camel

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

我向客户端公开RESTful和SOAP接口

RESTful和SOAP路由都会调用一条实际调用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的调用失败(例如Connection拒绝),那么我需要在REST和SOAP路由中执行不同的操作。据我所知,onException仅适用于其指定的路线。

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

1 个答案:

答案 0 :(得分:1)

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