我有一个调用多个端点的序列。我的序列是:
<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端点并为其设置有效负载,最后获得连续的结果。期待你的回答。谢谢你提前
答案 0 :(得分:0)
在管理控制台 - &gt;端点菜单中,您可以找到收件人列表端点,其中提供两个端点,并从序列中引用该收件人端点
答案 1 :(得分:0)
要使用收件人列表端点向两个端点(在您的情况下为两个wsdl端点)发送邮件,两个端点接受的邮件格式应该相同。
如果是这样,您可以使用收件人列表端点向两个端点发送消息,然后聚合响应消息并构造连接结果。 请参阅以下资源以查找收件人列表端点的示例配置。
如果两个端点消息格式不相同,则必须实现服务链方案,或者可以克隆消息并为两个端点创建两个不同的分支,并构建每个服务端点所需的有效负载并发送到服务端点那个分支。然后,您可以聚合从两个分支收到的响应,并构建连接结果。