我是来自孟买的 Ashish,对 Apache Camel 非常陌生。
目前我正在用 XML 构建一个路由,它将扫描 SOAP 请求并将请求重定向到适当的 URI。
我的肥皂请求如下:
<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。我想依靠骆驼本身。
请尽快帮助我。
问候,
阿什什