如何为收件人列表组端点设置Payload?

时间:2013-05-17 14:57:45

标签: wso2 wso2esb

我有一个调用多个端点的序列。我的序列是:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="GetAllData">
   <switch xmlns:ns="http://org.apache.synapse/xsd" xmlns:cct="http://www.tempuri.org" xmlns:tns="http://www.tempuri.org" source="//tns:IDFilter/cct:ID">
      <case regex=".?">
         <log level="custom">
            <property name="Property2" value="----------------Inside switch 1 ? ---------------"/>
         </log>
         <filter xpath="//tns:ChildIDFilter/cct:ID='?'">
            <then>
               <log level="custom">
                  <property name="prop1" value="------Inside Then------------------"/>
               </log>
               **<payloadFactory>
                  <format>
                     <select_all_ID_operation xmlns:cir="http://tempuri.org"/>
                  </format>
               </payloadFactory>
               <payloadFactory>
                  <format>
                     <select_all_ChildID_operation xmlns="http://tempuri.org"/>
                  </format>
               </payloadFactory>
               <send>
                  <endpoint key="ID_Service_EPS"/>
               </send>**
            </then>
            <else>
               <log level="custom">
                  <property name="prop2" value="------Inside Else------------------"/>
               </log>
               <payloadFactory>
                  <format>
                     <select_all_ID_operation xmlns="http://tempuri.org"/>
                  </format>
               </payloadFactory>
               <send receive="ValidateAllData">
                  <endpoint key="ID_Endpoint"/>
               </send>
            </else>
         </filter>
      </case>
   </switch>
</sequence>

现在在我的ID_EPS端点,我有两个wsdl端点,对于它们我必须传递有效负载以从两个wsdl获取数据,但这不会发生。我的问题是如何调用接收端点来控制不同的wsdl端点并为其设置有效负载,最后获得连续的结果。期待你的回答。谢谢你提前

2 个答案:

答案 0 :(得分:0)

在管理控制台 - &gt;端点菜单中,您可以找到收件人列表端点,其中提供两个端点,并从序列中引用该收件人端点

答案 1 :(得分:0)

要使用收件人列表端点向两个端点(在您的情况下为两个wsdl端点)发送邮件,两个端点接受的邮件格式应该相同。

如果是这样,您可以使用收件人列表端点向两个端点发送消息,然后聚合响应消息并构造连接结果。 请参阅以下资源以查找收件人列表端点的示例配置。

http://docs.wso2.org/wiki/display/ESB460/Sample+62%3A+Routing+a+Message+to+a+Dynamic+List+of+Recipients+and+Aggregating+Responses

如果两个端点消息格式不相同,则必须实现服务链方案,或者可以克隆消息并为两个端点创建两个不同的分支,并构建每个服务端点所需的有效负载并发送到服务端点那个分支。然后,您可以聚合从两个分支收到的响应,并构建连接结果。