我试图用基于内容的路由调解器做一个简单的例子 . 特别是这是序列XML:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="CBRSimple">
<in>
<log category="INFO" level="full" separator=",">
<property name="message" value="SOAP Message received on ESB"/>
</log>
<filter regex=".*/VISA.*" source="get-property('To')">
<then>
<send>
<endpoint key="VISAEndpoint"/>
</send>
</then>
<else>
<send>
<endpoint key="AMEXEndpoint"/>
</send>
</else>
</filter>
</in>
</sequence>
我想检查请求的目的地是否包含单词VISA并将消息重定向到VISAEndpoint(部署在WSO2 AS上的Web服务 localhost:9763/services/VisaProcessingService )
部署ESB并侦听以下端口:
HTTP:8281
HTTPS:8244
然后我使用基于VISAEndpoint Wsdl的示例SOAP MEssage创建了一个SOAP UI测试,并将SOAP请求发送到以下url:
localhost:8281/services/VISAProcessingService
ESB日志显示收到soap消息,因为打印出soap标头,但请求未被重定向 . 如果我检查esb日志,我不会通过esb序列 .
我的问题是:
1)这是用soap UI测试esb序列的正确方法吗?
2)如果是,有人可以帮我弄清楚测试不起作用的原因吗?
如果不是,您能否提出正确的方法来测试此样本?
非常感谢你提前,
问候
乔瓦尼
1 回答
你的正则表达式中有一个错误,你应该用
.*/Visa.*
替换.*/VISA.*
property 'To'包含: /services/VisaProcessingService