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

问题描述 投票:0回答:2

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

我有:

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

这是最好的方法吗?

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

谢谢。

apache-camel
2个回答
0
投票

您能否尝试通过设置来替换引发异常的代码 将属性 Exchange.ROUTE_STOP 设置为 true
IE。

exchange.setProperty(Exchange.ROUTE_STOP, Boolean.TRUE);


0
投票

温馨提示: 它被标记为已弃用

// exchange.setProperty(Exchange.ROUTE_STOP, Boolean.TRUE);

请使用下面的内容,正如保罗提到的。

exchange.setRouteStop(true);
© www.soinside.com 2019 - 2024. All rights reserved.