wso2esb如何在iso8583入站端点中响应消息

时间:2016-09-08 03:36:43

标签: wso2 wso2esb iso8583

我从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,改变它,并将其发送回客户端? 我们需要创建连接器还是只是按顺序修改数据?

感谢

1 个答案:

答案 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 -->