从ESB中的DSS调用多个服务端点并在ESB中构建响应XML

时间:2013-10-01 16:43:36

标签: wso2 wso2esb wso2dss

每当我从ESB调用getperson(id)时,id为查询参数; 我应该得到以下回复

<person>
    <id\>
    <name\>
    <type\>
    <address>
        <street\>
        <apt\>
        <city\>
        <state\>
        <zipcode\>
    </address>
    <image>
        <id\>
        <description\>
        <title\>
    </image>
<person>

我在DSS中有3项服务 DSS中的服务:

  1. person_service
  2. 响应:

        <person>
            <id\>
            <name\>
            <type\>
            <addressid\>
            <imageid\>
        </person>
    
    1. address_service
    2. 回应:

                  <address>
              <street\>
              <apt\>
              <city\>
              <state\>
              <zipcode\>
          </address>
      
      1. image_service
      2. 响应:

             <image>
                <id>
                <description>
                <title>
            </image>
        

        我正在尝试在ESB中添加资源。如何将多个DSS服务的响应分组为一个XML,如上所示。

        ESB版本:4.6.0 DSS版本:4.0.1

        谢谢

1 个答案:

答案 0 :(得分:0)

是的,您可以使用服务链和聚合器介体实现此目的。首先向person_service发出请求并获取响应,然后使用服务链机制向address_service发送请求,依此类推。然后使用聚合器介体来组合响应。

对于服务链,请参阅http://docs.wso2.org/display/ESB460/Service+Chaining,对于聚合器调解员,请参阅http://docs.wso2.org/display/IntegrationPatterns/Aggregator