我从testclient向我的入站发送ISO8583消息,
我有日志控制台:
ApplicationRecord
如何更改服务器的响应,例如我想将字段ID 105从<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<ISOMessage xmlns="http://ws.apache.org/ns/synapse">
<data>
<field id="0">0200</field>
<field id="3">568893</field>
<field id="4">000000020000</field>
<field id="7">0110563280</field>
<field id="11">456893</field>
<field id="44">DFGHT</field>
<field id="105">ABCDEFGHIJ 1234567890</field>
</data>
</ISOMessage>
</soapenv:Body>
</soapenv:Envelope>
Response From Server :ISOMessage from pool-28-thread-1 is consumed :
0210B220000002100000000000000080000056892300000010050001105632804568930005KAMAL021ABCDEFGHIJ 1234567890
更改为<field id="105">ABCDEFGHIJ 1234567890</field>
我不知道如何更改数据并将其发送回客户端。 我搜索wso2文档,如何在入站响应消息,但我找不到任何东西。 如何处理传入的ISOMessage,改变它,并将其发送回客户端? 我们需要创建连接器还是只是按顺序修改数据?
感谢
答案 0 :(得分:0)
您只需修改序列中的XML即可。收到消息后,您可以使用Enrich Mediator进行修改,如下所示(您需要指定正确的XPath以标识要更改的元素)。
修改后,您可以使用Send mediator将其发送到
<!-- todo: receive the message -->
<property name="newValue" value="xxxxxxxxxx 000000000"/>
<enrich>
<source type="property" clone="true" property="newValue"/>
<target xpath="$body/*[1]/*[1]/*[7]"/>
</enrich>
<log>
<property name="message" expression="$body"/>
</log>
<!-- todo: send the message -->