将XML节点添加到WSO2 DSS和ESB响应

时间:2012-04-25 18:30:05

标签: wso2 wso2esb wso2dss

我已将WSO2 DSS设置为返回如下数据:

<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 个答案:

答案 0 :(得分:1)

是的,可以在ESB中完成。基本上在该代理服务的“outSequence”中,您可以简单地使用filter介体,使用XPath检查有效负载,以检查是否存在匹配或没有数据存在。因此,从过滤器介体,在它们各自的路径中,您可以使用enrich介体构建消息并添加所需的必要元素,如0等。因此,基本上在过滤器介体“true”路径中,您可以将“Product”元素保存在属性中,然后使用enrich将其添加到消息正文中最后创建的元素。您可能需要查看ESB samples以了解这些调解员的工作方式。

干杯, 长香。