我需要能够轮询Rest WebService,并且作为该调用的一部分传递来自WebService的最后一个响应的id。我知道要在Camel中使用动态端点,您需要使用Enrich处理器,但我无法进行更新。
请考虑以下简单案例:
public class MyRoute extends RouteBuilder {
long id;
@Override
public void configure() throws Exception {
from("timer://foo?fixedRate=true&period=3000")
.enrich().simple("http://localhost:8080/TestRestSource/test/result/" + id)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
id++;
System.out.println("--- " + id);
}
})
.end();
}
}
我正在使用Camel 2.16。
任何帮助都将不胜感激。
提前致谢,
克里斯
答案 0 :(得分:1)
配置方法仅在创建Camel路由期间调用一次,因此您无法使用+ id
为每个调用构建uri。而是使用java方法调用来构建uri动态。
并且不要只使用enrich
作为动态的recipientList
,您可以在其中执行计算要使用的uri的方法调用:
from("timer:...").
recipientList(method(MyRoute.class, "calculateUri"))
然后在路径构建器类中添加一个方法calculateUri,在该类中返回要使用的URI
public String calculateUri() {
return "http:...." + i;
}