有没有办法在不抛出异常的情况下中止路由单的处理?

Is there a way to abort the processing of a Routing Slip without throwing an Exception?

我有一个包含几个步骤的路由单。我希望能够包括执行一些验证的步骤,这些验证可以在需要时使路由单短路。

我有:

from("direct:Start")
  .setHeader(header("RoutingSlip", config::getRoutingSlip)
  .doTry()
    .routingSlip(header("RoutingSlip"))
  .doEndTry()
    .doCatch(ValidationException.class)
      .log("Validation failed!")
  .end()

这是最好的方法吗?

记录堆栈跟踪的事实让我怀疑这是否是正确的方法。

谢谢。

您能否尝试通过设置来替换引发异常的代码 属性 Exchange.ROUTE_STOP 到 true
IE。 exchange.setProperty(Exchange.ROUTE_STOP, Boolean.TRUE);