2012-04-25 59 views
0

我WSO2 DSS設立這樣的返回數據:XML節點添加到WSO2 DSS和ESB響應

<Products> 
    <Product> 
     <SKU>12345678910123</SKU> 
     <Item>123456</Item> 
     <ItemName>My Product Name</ItemName> 
    </Product> 
</Products> 

如果沒有數據返回我只是得到如下:

<Products xmlns="http://data.mydomain.com/wso2/Products/getSKUinfo"/> 

我將WSO2 ESB Pass Through Proxy設置爲連接上述服務。當我通過像esbhost.domain.com/services/Products/SKU/12345678910123這樣的URL訪問服務時,我得到了上述內容。我想要做的就是添加一個「狀態」節點(或任何它被稱爲)基本上返回此:

<Products> 
    <Status>1</Status> 
    <Product> 
     <SKU>12345678910123</SKU> 
     <Item>123456</Item> 
     <ItemName>My Product Name</ItemName> 
    </Product> 
</Products> 

如果沒有匹配/無數據返回,我想響應成爲:

<Products> 
    <Status>0</Status> 
</Products> 

這是可能在WSO2 ESB中做的嗎?或者我需要添加一些WSO2 DSS服務?

如果我沒有使用正確的術語,請原諒我。

感謝, 賈裏德

回答

1

是的,它可以在ESB完成。基本上在該代理服務的「outSequence」中,您可以簡單地使用filter調解器,使用XPath檢查有效負載以檢查是否存在匹配或沒有數據。因此,從過濾器介體中,在其各自的路徑中,可以使用enrich介體生成一條消息,並添加所需的必要元素,如0等。因此,基本上在過濾器中介「真實」路徑中,您可以將「Product」元素保存在屬性中,然後使用豐富將其添加到消息正文中最後創建的元素。您可能想查看ESB samples以瞭解這些介體如何工作。

乾杯, Anjana。