3

URI の値が交換ヘッダーの一部の情報と一致するエンドポイントを傍受しようとしています。

ヘッダーにDatabaseNameというフィールドがあるとします。特定のルートが、ヘッダーで指定されたデータベースへの書き込みのみを行うようにしたいと考えています。

このようなことはできますか?

interceptSendToEndpoint("mock:${in.header.DatabaseName}")

私はそれを試しましたが、うまくいかないようです。私のオプションは何ですか?

私はまた、次のようなことを考えていました:

interceptSendToEndpoint("mock:*").when(...)?

しかし、この場合、インターセプトされたノードの URI を when 式で参照できるかどうかはわかりません。

ありがとう

4

2 に答える 2

5

ワイルドカードを使用して傍受し、それをいつ実行するかを組み合わせることができます。詳細については、http: //camel.apache.org/interceptを参照してください。

これは、傍受されたエンドポイント URI を持つキー Exchange.INTERCEPTED_ENDPOINT (CamelInterceptedEndpoint) を持つメッセージのヘッダーです。それを when で使用して、述語に一致させることができます。のようなもの:

interceptSendToEndpoint("mock:*")
  .when(simple("${header.CamelInterceptedEndpoint} == ${in.header.DatabaseName}"))
  ...
于 2013-09-24T08:03:02.297 に答える
0

recipientListこのための指示を使用してください: http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html

于 2013-09-24T05:32:23.113 に答える