Camel - 在异常时停止处理路由

时间:2018-03-07 10:48:56

标签: apache-camel integration hl7

我有一个处理hl7消息的camel路由。处理成功后,我想将其传递给另一个端点b进行进一步处理。

但是如果在processHL7中发生任何异常,我有一个catch块进行一些处理。我想在进入doCatch并遇到结束时停止处理,但这不会发生。无论发生什么,流程都会流向终点b。当我进入doCatch块时如何停止?

from("direct:a") 
    .doTry()
      .to("bean:processHL7?method=process")        
    .doCatch(HL7Exception.class)
      .to("direct:ErrorACK")
      .transform(ack())
    .end()
    .transform(ack())       
    .to("direct:b");

1 个答案:

答案 0 :(得分:1)

这应该有效。

from("direct:a") 
    .doTry()
      .to("bean:processHL7?method=process")        
    .doCatch(HL7Exception.class)
      .to("direct:ErrorACK")
      .transform(ack())
      .stop()
    .end()
    .transform(ack())       
    .to("direct:b");

您可以使用stop()停止进一步处理路线。