私は2つの操作を持つサービスを持っています。
RegisterUser
UpdateUser
私はラクダの敗走をしています:
<camel:route id="myRoute">
<camel:from uri="cxf:bean:myListenerEndpoint?dataFormat=POJO&synchronous=true" />
<camel:bean ref="processor" method="processMessage"/>
<camel:to uri="xslt:file:resources/service/2.0.0/UserRegistration.xsl"/>
<camel:to uri="cxf:bean:myTargetEndpoint"/>
</camel:route>
私のプロセッサ Bean では、指定すると次のようになります。
RegisterUser registerUser = exchange.getIn().getBody(RegisterUser.class);
登録ユーザー オブジェクトを取得します。すべて正常に動作します。問題は、ラクダに条件付きでリクエストをルーティングしてもらいたいことです。たとえば、次のようになります。
サービス操作がRegisterUser
特定の Bean にメッセージをルーティングする場合、サービス操作がUpdateUser
他の Bean にメッセージをルーティングする場合。
camel xPath を使用しようとしましたが、機能していないようです。
<camel:route id="myRoute">
<camel:from uri="cxf:bean:myListenerEndpoint?dataFormat=POJO&synchronous=true" />
<camel:choice>
<camel:when>
<camel:xpath>
//RegisterUser
</camel:xpath>
<camel:bean ref="processor" method="processMessage"/>
<camel:to uri="xslt:file:resources/service/2.0.0/UserRegistration.xsl"/>
</camel:when>
</camel:choice>
<camel:to uri="cxf:bean:myTargetEndpoint"/>
</camel:route>
キャメルをさまざまなターゲットにルーティングするように設定する方法を探していましたが、何も見つかりませんでした。多分誰かがどこに問題があるのか 知っていますか?