我正在浏览WSO2 ESB的"Webinar - ESB - An answer to Enterprise Service Integration"视频。我对视频有疑问。
在视频中说,始终按顺序接收请求,out序列将返回服务提供商的响应。 ESb可以有多个中间序列,我们可以设置服务提供者必须发送响应的中间序列。
当我们无法控制服务提供商时,怎么可能?我们在ESB和服务提供商之间使用一些队列来完成吗?
答案 0 :(得分:1)
在序列内部,当您向服务发送请求时,您可以选择响应处理序列(服务链):
<send receive="personInfoSeq">
<endpoint key="PersonInfoEpr"/>
</send>
当ESB发送请求时,将实例化一个回调(专用线程),该回调将等待回复,然后执行“接收”。在&#39;发送&#39;中配置的序列介体
在序列内部,当您使用响应消息时,可以将其更改为请求消息(<property name="RESPONSE" value="false"/>
)并将其发送到其他服务
在&#34; in&#34;序列(当您使用请求消息时),您可以生成响应,示例:
<inSequence>
<header name="To" action="remove"/>
<property name="RESPONSE" value="true"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<payloadFactory>
<format>
<ns:getQuoteResponse xmlns:ns="http://services.samples">
<ns:return xmlns:ax21="http://services.samples/xsd">
<ax21:change>4.212070096051944</ax21:change>
<ax21:earnings>-9.567415587431361</ax21:earnings>
<ax21:high>-148.1740146577308</ax21:high>
<ax21:symbol>IBM</ax21:symbol>
</ns:return>
</ns:getQuoteResponse>
</format>
</payloadFactory>
<send/>
</inSequence>