3

エンドポイントから動的に変更することは可能ですか? たとえば、私は変化が欲しい

for(endpointFirst).routeId(ROUTEID).to(finishEndpoint);

for(endpointSecond).routeId(ROUTEID).to(finishEndpoint);

使ってみます

camelContext.stopRoute(TestRoute.ROUTEID);

古いエンドポイントを新しいエンドポイントに変更する

camelContext.startRoute(TestRoute.ROUTEID);

しかし、私の努力はうまくいきません。

助けてくれてありがとう

4

2 に答える 2

7

あなたがする必要があります

  1. ルートを止める
  2. ルートを削除します
  3. エンドポイントを変更する
  4. ルートを追加
  5. ルートを開始します

これにより、from エンドポイントを任意のもの (たとえば別のもの) に変更できます。

一部のコンポーネント/エンドポイントでは、オプションを変更して実行時に更新することができます。たとえば、JMS エンドポイントではこれが許可されているため、次のことができます。

  1. ルートを止める
  2. jms エンドポイントのオプションを変更する
  3. ルートを開始します

ただし、一部のコンポーネントではそれができない場合があります。

于 2013-03-06T18:04:02.633 に答える
1

エンドポイントを変更するにはfrom、コンテキスト API を介してルートを動的に追加/削除するか、Claus が提案したようにルートを変更します。

宛先エンドポイントを変更するには、受信者リストのEIP と式を使用して、メッセージ ヘッダー、変数、メソッドなどに基づいてエンドポイントを動的に決定します。

from("direct:a")
     .recipientList(header("foo"));
于 2013-03-06T16:47:19.180 に答える