0

我将 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 直通代理以连接到上述服务。当我在像 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 服务中添加一些东西?

如果我没有使用正确的术语,请原谅我。

谢谢,贾里德

4

1 回答 1

1

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

干杯,安佳娜。

于 2012-04-25T18:52:21.487 回答