我有一个处理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");
答案 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()
停止进一步处理路线。