2016-07-05 1 views
0

J'intègre wso2dss 3.5 et wso2esb 4.9. Dans DSS, j'ai créé un DataService pour obtenir des données à partir d'une base de données. Après le tableau de bord WSO2 dans DSS, j'ai utilisé le point de terminaison dans mon projet eclipse (Developer Studio). Le xml gerated par DSS est:Boucle Foreach dans WSO2ESB ne fonctionne pas

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

Ainsi, dans mon projet, j'ai ESB ce code gerated:

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

Le problème est qu'il est Loggin pas en foreach, autrement dit, il n'accède pas à l'intérieur du médiateur foreach. Qu'est-ce qui ne va pas?

Répondre

0

XPath //elements/row rien de retour parce que le noeud "éléments" appartiennent à l'espace de noms http://ws.wso2.org/dataservice

essayer avec //ds:element/ds:row and définir ds comme xmlns:ds="http://ws.wso2.org/dataservice"

+0

je dois mettre xmlns en foreach aussi, non? –

+0

Il ne fonctionne pas encore .. J'ai changé mon foreach à < log description = "" level = "full" /> et il ne se connecte pas .. –

+0

Dans votre commentaire ci-dessus, vous oubliez un 's' à la fin de "éléments" et vérifiez si http: // est inclus dans votre déclaration d'espace de noms –