我的camel路由中的loopDoWhile模式出现问题。请注意,如果没有loopDoWhile,路由将正常工作,并将一组项返回到“class1”路由。
等级1:
from(LISTE_URI)
.process(listRequestProcessor)
.to("direct:netty4-tcp-route")
.process(listResponseProcessor);
第2类:
from("direct:netty4-tcp-route")
.loopDoWhile(exchangeProperty("endOfList").isNotEqualTo("true"))
.marshal(myDataFormat)
.to(netty4URI)
.unmarshal(myDataFormat);
我正在调用的服务器返回一个部分项列表和一个“endOfList”,该“endOfList”设置为true或false取决于是否有更多项要获取。
使用“loopDoWhile”模式,我在循环,最终的列表按预期增长但是在循环结束时,列表没有返回到类1路由。没有来自类2路由的响应(虽然我有一个没有循环的路由)。
2条答案
按热度按时间bweufnob1#
经过一段时间的搜索错误的方向,它似乎是由于问题的netty调用:我不得不使用enrich(netty4URI)而不是to(netty4URI)。
1hdlvixo2#
camel中的doWhile循环可以用以下方式编写:
方式1(简单)--〉字符串 predicate :
方式2(函数式)--〉字符串 predicate :
方式2(功能)--〉布尔 predicate :
您可以使用上述案例来适应您的用例。