无法退出 wso2 esb 中的迭代

can not exit from iterate in wso2 esb

我是 wso2 esb 的新手,现在我在迭代调解器方面遇到了麻烦。 我在我的代码中使用了迭代并将所需的值发送到端点但不幸的是我无法退出迭代器。 这是我的代码

<iterate preservePayload="true"
              attachPath="//csv-set"
              expression="//csv-set/searchGuestIdentity"
              sequential="true">
        <target>
           <sequence>
              <xslt key="gov:/xmltocsv.xsl"/>
              <xslt key="gov:/new8.xsl"/>
              <xslt key="gov:/RemoveXMLdeclaration.xsl"/>
              <send>
                 <endpoint>
                    <http format="soap11"
                          method="GET"
                          uri-template="http://myendpoint/services/GuestIdentityService"/>
                 </endpoint>
              </send>
              <log level="full"/>
           </sequence>
        </target>
     </iterate>
     <log>
        <property name="log" value="end of iterate"/>
     </log>

迭代后看不到日志。 谁能帮我说说为什么我不能退出迭代器? 另外,当我向端点发送值时,如何查看结果?

当你在迭代器中使用发送中介时,响应将出现在out序列中。您可以在那里使用聚合调解器 [1] 来聚合响应。您可以在此处找到示例 [2]。如果您使用 call mediator[3][4] 响应而不是 send mediator ,响应将按顺序出现,其余逻辑将被执行。

[1] https://docs.wso2.com/display/ESB500/Aggregate+Mediator

[2] http://shriwithjava.blogspot.com/2015/11/how-to-use-iterator-mediator-in-wso2-esb.html

[3] https://docs.wso2.com/display/ESB500/Call+Mediator

[4]https://medium.com/@pubududp/wso2-esb-how-to-use-call-mediator-457f2b387b94#.iu53akgyr

使用调用调解器而不是发送调解器并将调用调解器设置为是。然后您可以在序列末尾使用响应调解器来查看日志调解器

中 属性 的值

我知道很久以前就有人问过这个问题,但也许有人需要答案。

尝试在 Iterate mediator 中使用参数“continueParent”设置为“true”:

<iterate preservePayload="true"
              continueParent="true"
              attachPath="//csv-set"
              expression="//csv-set/searchGuestIdentity"
              sequential="true">

根据 wso2 文档,此参数用于指定是否应保留原始消息。可能的值如下。

  • True - 如果选择此项,将保留原始消息。
  • False - 如果选择此项,原始邮件将被丢弃。这是默认值。