0

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

<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 端点的接收端点并为其设置有效负载并最终获得连接结果。期待您的回答。在此先感谢

4

2 回答 2

0

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

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

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

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

于 2013-05-19T07:35:24.100 回答
0

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

于 2013-05-17T16:02:30.980 回答