Apache camel 退出apachecamel循环

Apache camel 退出apachecamel循环,apache-camel,jbossfuse,apache-servicemix,Apache Camel,Jbossfuse,Apache Servicemix,我想在某种情况下退出驼峰循环。我用的是骆驼2.15 .loop(simple("${exchangeProperty.loopCount}")) .to("bean:xxx?method=exitFromLoop") .end() 我尝试在exitFromLoop方法中更改CamelLoopIndex和CamelLoopSize,但对我无效 是否有其他替代方法,例如使用choice/when?如果使用Camel 2.17以后的版本,则会出现循环while模式 请参阅文档: 然后循环像

我想在某种情况下退出驼峰循环。我用的是骆驼2.15

 .loop(simple("${exchangeProperty.loopCount}"))
   .to("bean:xxx?method=exitFromLoop")
 .end()
我尝试在exitFromLoop方法中更改CamelLoopIndex和CamelLoopSize,但对我无效


是否有其他替代方法,例如使用choice/when?

如果使用Camel 2.17以后的版本,则会出现循环while模式

请参阅文档:

然后循环像while循环一样运行,直到谓词的计算结果为false/null或零

作为一个谓词,它不会自动递减计数器,因此它就像java中的while循环。

直到camel 2.16(以及2.17),您可以在中的块中使用语句,并将循环计数器设置为任意上限


或者,您的循环可能包含一个java处理器,该处理器可以使用以下命令有条件地停止路由:exchange.setProperty(exchange.route\u stop,Boolean.TRUE)

太好了。谢谢你,克劳斯。我使用保险丝6.2,它使用骆驼2.15。驼峰2.15中有其他选择吗?您可以使用动态路由器EIP代替-或者,如果您不需要在循环后再进行任何路由,您可以将交换标记为停止