2016-10-12 11 views
0

私はRest WebServiceをポーリングする必要があり、その呼び出しの一部としてWebServiceからの最後の応答のIDを渡します。キャメルでダイナミックなエンドポイントを使用するには、エンリッチプロセッサを使用する必要があることを認識していますが、アップデートを行うことはできません。Apache Camel Dynamic 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を使用しています:

は、以下のような単純なケースを考えてみてください。

ご協力いただければ幸いです。あなたが各呼び出しのURIを構築するために+ idを使用することはできませんので、事前に

おかげで、

クリス

+0

あなたはどんなエラーがありますか? –

答えて

1

は、configureメソッドは、キャメルルートを作成中に一度呼び出されます。代わりにjavaメソッド呼び出しを使用して、uriダイナミックを構築します。ルートビルダークラスどこでメソッドcalculateUriを追加し

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

をそして:

そして、あなたが使用するURIを算出し、メソッド呼び出しを行うことができ、動的であるだけで平野recipientListによってenrichを使用してはいけませんあなたは使用するuriを返します

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