在命中 webserviceconsumer 之前逐个迭代 xml 数组请求

iterate xml array request one by one before hitting webserviceconsumer

完整的请求是:

 <?xml version='1.0' encoding='windows-1252'?>
<balanceInquiry>
    <request>
        <amount>
            <amount>1</amount>
            <currency>USD</currency>
        </amount>
    </request>
    <request>
        <amount>
            <amount>2</amount>
            <currency>USD</currency>
        </amount>
     </request>
     <request>
        <amount>
            <amount>3</amount>
            <currency>USD</currency>
        </amount>
      </request>
</balanceInquiry>

在访问 webconsumer 之前,它应该是:

<balanceInquiry>
    <request>
        <amount>
            <amount>1</amount>
            <currency></currency>
        </amount>
    </request>
</balanceInquiry>

然后对 1 进行响应,然后再次对 2 进行响应。

我正在为每个组件使用

<foreach collection="#[payload.balanceInquiry]" doc:name="For Each">
    <ws:consumer config-ref="Web_Service_Consumer" operation="balanceInquiry" doc:name="Web Service Consumer"/>
</foreach>

但是它不起作用。是否有任何其他组件可用于执行任务,或者我做错了。请提出建议。

使用 splitter 拆分您的 xml 然后 dom to xml transformer 然后再进行网络服务调用

<splitter expression="#[xpath3('//balanceInquiry/request',payload,'NODESET')]"/>        
<mulexml:dom-to-xml-transformer doc:name="DOM to XML"/>