私はムンバイ出身の Ashish で、Apache Camel は初めてです。
現在、SOAP リクエストをスキャンし、リクエストを適切な URI にリダイレクトするルートを XML で構築しています。
私の SOAP リクエストは次のとおりです。
<service xmlns="http://ws.madcomum.comprova.com">
<request>
<keysValues>
<item>
<bytesValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<dateValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<doubleValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<key>validatesOriginIntegrity</key>
<longValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<stringValue>z4x/FOOR+EPQ0vD9+itPSCBeNR4=</stringValue>
</item>
</keysValues>
<actionId>1</actionId>
<clientId>ARGO</clientId>
</request>
</service>
この SOAP エンベロープから、Camel Route を使用して actionId タグの値を解析したいと考えています。actionId の値が 1 の場合、ルートを callService にリダイレクトする必要があります。それ以外の場合は、別のサービスにリダイレクトします。
次のようにルートのロジックを開発しました。
<route>
<from uri="cxf:bean:comprovaWS?dataFormat=MESSAGE" />
<when>
<xpath>//actionId=1</xpath>
<to uri="log:input" />
<to ref="callService" />
<to uri="log:output" />
</when>
<otherwise>
<to uri="log:input" />
<to ref="otherService"/>
<to uri="log:output" />
</otherwise>
</choice>
</route>
しかし、このロジックは機能していません。私のルートに誤りはありますか?
私は Java 派ですが、ここでは Java を使いたくありません。Camel自体に頼りたい。
できるだけ早く助けてください。
よろしく、
アシッシュ