将Foreach循环到WSO2ESB并不起作用

时间:2016-07-05 13:35:28

标签: wso2 wso2esb wso2dss wso2developerstudio

我正在整合wso2dss 3.5和wso2esb 4.9。在DSS中,我创建了一个DataService来从数据库中获取数据。在WSO2仪表板进入DSS之后,我在我的eclipse项目(Developer Studio)中使用了端点。由DSS生成的xml是:

<elements xmlns="http://ws.wso2.org/dataservice">
   <row>
      <name>nome1</name>
      <address>rua xalala das xalalas</address>
   </row>
   <row>
      <name>nome2</name>
      <address>ruas rms did sa</address>
   </row>
   <row>
      <name>nome3</name>
      <address>aldoas daso dasodsa</address>
   </row>
</elements>

所以,在我的ESB项目中,我有这个带代码的代码:

<foreach expression="//elements/row">
    <sequence>
      <payloadFactory media-type="xml">
        <format>
          <p:Insert xmlns:p="http://ws.wso2.org/dataservice">
            <xs:nome xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:nome>
            <xs:endereco xmlns:xs="http://ws.wso2.org/dataservice">$2</xs:endereco>
          </p:Insert>
        </format>
        <args>
          <arg evaluator="xml" expression="/row/name"/>
          <arg evaluator="xml" expression="/row/address"/>
        </args>
      </payloadFactory>
      <log>
        <property name="xalela" value="xalxalxlalxal"/>
      </log>
    </sequence>
  </foreach>

问题是它没有登录到foreach,换句话说,它不能访问foreach mediator。怎么了?

1 个答案:

答案 0 :(得分:0)

xpath //elements/row不返回任何内容,因为节点“元素”属于命名空间http://ws.wso2.org/dataservice

尝试使用//ds:element/ds:row and ds 定义为xmlns:ds="http://ws.wso2.org/dataservice"