私は、それがどのサービスであるかを示すためにヘッダーに値を設定し、次にこれをラクダルートで送信します。このアプローチは、これを行うための1つの方法です。クリスチャン・シュナイダーにはもう1つの優秀な解決策があります。私はこれまで以上に多くのことをしています。しかし、どちらも同じことを達成し、あなたが誰に尋ねるかによって、あるものが他のものよりもはっきりするかもしれません。あなたが行うことができる。例えば
:
public void foo(Exchange exchange){
exchange.getIn().setHeader("MsgType", "Student");
}
あなたは、その後のJava DSL、あるいは春のDSLのいずれかに見出しを絞り込むことができます。
あなたはこのような何か(擬似コード)を行うだろう。このような何か(擬似コード)春DSLでは
from("foo:incommingroute")
.choice()
.when(header("MsgType").equals("Student"))
.to("webservice:Student")
.when(header("MsgType").equals("Employee"))
.to("webservice:Employee")
.otherwise()
.to("jms:Deadletter")
.end();
を行うだろうJavaのDSLで
<route>
<from uri="foo:incommingroute"/>
<choice>
<when>
<simple>${header.MsgType} equals 'Student'</simple>
<to uri="webservice:Student"/>
</when>
<when>
<simple>${header.MsgType} equals 'Employee'</simple>
<to uri="webservice:Employee"/>
</when>
<otherwise>
<to uri="jms:badOrders"/>
<stop/>
</otherwise>
</choice>
<to uri="jms:Deadletter"/>
</route>
また見ることができますこのリンクの豊富なパターンhttp://camel.apache.org/content-enricher.html。基本的に私が示唆しているのは、より豊かなパターンに従うことです。あなたが私にキャメルにメッセージを送る方法を教えていただけたら、もっと助けてくれるかもしれません。
これはあなたにいくつかのアイデアを提供し、コードミスなどがある場合は申し訳ありませんが私はバス停におり、チェックする時間がありませんでした。
印刷するログコンポーネントにヘッダをダンプしない理由でわずか考えをそれらを端末に送信する。たぶんヘッダーには、それらを区別する方法を特定するのに役立つ何かがあります。 – Namphibian