我有一个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
中的故障传达回“外部”路线?
答案 0 :(得分:1)
您的驼峰上下文可以有一个onException(这将应用于其中的所有路由)。从那里,onException只是另一条路线。例如,您可以拥有CBR,并根据发生异常的位置指定下一步操作。