Apache Camel动态Http调用



我需要能够轮询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;
}

最新更新