2016-10-12 123 views
0

我需要能夠輪詢Rest WebService,並將其作爲來自WebService的最後一個響應的ID中該呼叫的一部分。我知道要在Camel中使用動態端點,你需要使用一個Enrich處理器,但是我無法獲得更新。Apache Camel動態Http調用

請考慮下面的簡單情況:

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(); 
    } 

} 

我使用駱駝2.16。

任何幫助,將不勝感激。

由於提前,

克里斯

+0

那麼,你會得到什麼錯誤? –

回答

1

的配置方法創建駱駝路線時只調用一次,所以你不能使用+ id建立每個呼叫的URI。而是使用java方法調用來構建uri動態。

而且不通過只是一個普通的recipientList它是動態的,在這裏你可以做計算的URI的使用方法調用中使用enrich

from("timer:..."). 
    recipientList(method(MyRoute.class, "calculateUri")) 

然後在路線生成器類,其中添加一個方法calculateUri你返回的uri使用

public String calculateUri() { 
    return "http:...." + i; 
}