2012-04-25 34 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。