我正在尝试借助如下所示的 try catch 块来查找骆驼中是否存在直接路线。我正在寻找一个谓词来检查骆驼中是否存在路线。我找不到任何直接给我答案的东西,所以我采取了以下方法,
<doTry>
<recipientList>
<description>Check if a country specific handler is available</description>
<simple>direct:${header.operationName}${body.country}</simple>
</recipientList>
<doCatch>
<exception>org.apache.camel.component.direct.DirectConsumerNotAvailableException</exception>
<recipientList>
<description>if a country specific handler is not available to to the base</description>
<simple>direct:${header.operationName}</simple>
</recipientList>
</doCatch>
</doTry>
这意味着我被迫使用骆驼中的异常处理程序来捕获 DirectConsumerNotAvailableException 以确定路由是否存在。我正在寻找一种替代方法,我们可以使用如下所示的简单表达式,
<choice>
<when>
<description>Check if a country specific handler is available</description>
<simple>direct:${header.operationName}${body.country} exists</simple>
<recipientList>
<description>country specific handler is available</description>
<simple>direct:${header.operationName}${body.country}</simple>
</recipientList>
</when>
<otherwise>
<recipientList>
<description>country specific handler is not available then route to generic processing</description>
<simple>direct:${header.operationName}</simple>
</recipientList>
</otherwise>
</choice>
请让我知道是否可以使用其他方式实现这样的目标。