如何使用Apache Camel循环执行

时间:2017-02-15 09:28:12

标签: while-loop apache-camel

我在骆驼路线中遇到loopDoWhile模式的问题。 请注意,如果没有loopDoWhile,路由可以正常工作并将一组项返回到“classe 1”路由。

classe 1:

from(LISTE_URI)
.process(listRequestProcessor)
.to("direct:netty4-tcp-route")
.process(listResponseProcessor);

classe 2:

from("direct:netty4-tcp-route")
.loopDoWhile(exchangeProperty("endOfList").isNotEqualTo("true"))
.marshal(myDataFormat)
.to(netty4URI)
.unmarshal(myDataFormat);

我正在调用的服务器返回部分项目列表,并将“endOfList”设置为true或false,具体取决于要获取的项目更多。 然后,我需要重新调用服务器,直到endOfList为真。

使用“loopDoWhile”模式我正在循环并且我的最终列表正在按预期增长但是列表在循环结束时不会返回到classe 1路由。没有来自classe 2路线的响应(虽然我有一个没有循环)。

1 个答案:

答案 0 :(得分:1)

经过一段时间搜索错误的方向后,问题似乎是由于netty调用:我必须使用enrich(netty4URI)而不是(netty4URI)。