我需要能够轮询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.
如有任何帮助,不胜感激。
提前感谢,
克里斯configure方法在创建Camel路由期间只调用一次,因此您不能使用+ id
为每个调用构建uri。相反,使用java方法调用来动态构建uri。
和不使用enrich
只是一个普通的recipientList
是动态的,在那里你可以做一个方法调用计算uri使用:
from("timer:...").
recipientList(method(MyRoute.class, "calculateUri"))
然后在路由构建器类中添加一个方法calculateUri,返回要使用的uri
public String calculateUri() {
return "http:...." + i;
}