Apacheキャメルでは、交換プロセッサから別のプロセッサに値を渡すための最良の方法はどれですか(そしてその理由):
setProperty
メソッドを使用する。プロパティとヘッダーはほとんど同じです。ただし、ヘッダーは、Jmsなどの特定のコンポーネントのプロトコル固有のヘッダーとの間で変換されます。そう、
ベンとペッターが言及していない違いの1つは、キャメルでのメッセージの処理の全期間にわたってプロパティが安全に保存されることです。対照的に、ヘッダーはメッセージプロトコルの一部であり、ルーティング中に伝播されない場合があります。たとえば、JMSには、ヘッダーなどとして保存できるものに制限があります。
Camel in Actionブックの無料の第1章は、Exchange、メッセージなどのラクダの概念を扱っているため、読むことをお勧めします。
Exchange はプロセッサ間で渡されます。プロパティ、INメッセージ、およびオプションのOUTメッセージが含まれます。これらはそれぞれオブジェクトデータを格納できますが、一般的には次のとおりです。
そうは言っても、それは実際にはプロセッサーの後に呼び出されるコンポーネントに依存します。ほとんどには、エンドポイントなどを使用するために必要なヘッダーや本文の値がいくつかあります。これらの詳細については、特定の コンポーネントページ を参照してください。
また、Exchange /メッセージについては、以下のページで詳しく説明しています。
http://camel.Apache.org/maven/current/camel-core/apidocs/org/Apache/camel/Exchange.html
http://fusesource.com/docs/router/2.8/prog_guide/MsgFormats-Exchanges.html
答えはここにあります:
プロパティ:プロパティはマップであり、メッセージヘッダーのように見える場合があります。主な違いはその存続期間です。プロパティは交換の実行中に存在しますが、ヘッダーはメッセージの継続時間に制限されます(メッセージはルーティング中に大幅に変更される可能性があるため、交換の実行中にも変更されます)。キャメル自体は、いくつかのユースケースにいくつかのプロパティを追加する場合があります。