2017-08-03 9 views
0


を停止することなく、キャメルルートからプロパティを再ロード: ここでの例です:私はキャメルルートを停止することなく、動的に(PropertyComponentから)プロパティを更新する方法を把握しようとしていることに

@Override 
public void configure() throws Exception { 
     CamelContext ctx = super.getContext(); 
     PropertiesComponent pc = new PropertiesComponent(); 
     pc.setLocation("/tmp/apache-deltaspike.properties"); 
     ctx.addComponent("properties", pc); 

     // Logs Hello World every 2000 milliseconds 
     from("timer://myEapTimer?fixedRate=true&period=2000") 
      .log(LoggingLevel.INFO, "com.sample.route", "{{customProperty}}") 
      .to("log:HelloWorldLog?level=INFO"); 

} 

外部プロパティファイルには、Timerが起動するたびに印刷されるメッセージが含まれています。私はルートを停止せずにプロパティファイルをリロードさせる方法を見つける必要があります。 私はApache Camel 2.17.0を使用しています。 ありがとう

答えて

1

これは不可能です。{{xxx}}は、ルートの起動時に一度だけ解決されます。

プロパティーファイルを自分でロードして値を取得してそこにログオンできるJava Beanを使用できます。

または、Beanパラメータバインディングを使用してJava Beanを呼び出し、プロパティ値を注入することができます。しかし、あなたはまた、キャッシュなどを使用しないようにプロパティコンポーネントを設定する必要があります。

+0

あなたの助けを請うクラウス! –

関連する問題