2016-09-22 10 views
0

私はキャメルを初めて利用しているので、多くの質問があります。私が助けを求める前に、問題を慎重に研究しようとしています。この問題で私は解決策を見つけることができません。キーワードはとても一般的かもしれません。複雑なキャメルルートの場合

ルーティングに条件が必要です。 (SOAPメッセージ)ヘッダーには、ルートが使用される前に特定の値でなければならない2つのフィールドがあります。どのように私はRouteBuilderを使用して

if(x == 1 and y == 2) 

を指定するのですか?

答えて

1

シンプル(http://camel.apache.org/simple)を使用できると思います。また、述語(http://camel.apache.org/predicate.html)を調べることもできます。 XML-DSLで

それは次のようになります。あなたは述語を使用することができます

<choice> 
      <when><simple>${header.x} == '1' && ${header.y} == '2'</simple> 
       <log message="do something with message"/> 
      </when> 
      <otherwise> 
       <log message="do something else"/> 
      </otherwise> 
</choice> 
0

。述語インターフェースを実装し、選択肢の中で述部を使用します。

from("direct:node1") 
       .choice() 
        .when(customPredicate) 
         .to("direct:node2"); 

述語は、使用例に合わせて正確に定義されています。述語は、述語に埋め込まれた複雑なロジックを使用してルーティング決定を行うのに役立ちます。

関連する問題