WSO2 ESB - 如何从服务提供商发送对中间序列的响应?

时间:2014-08-19 07:43:01

标签: wso2 wso2esb wso2carbon

我正在浏览WSO2 ESB的"Webinar - ESB - An answer to Enterprise Service Integration"视频。我对视频有疑问。

在视频中说,始终按顺序接收请求,out序列将返回服务提供商的响应。 ESb可以有多个中间序列,我们可以设置服务提供者必须发送响应的中间序列。

当我们无法控制服务提供商时,怎么可能?我们在ESB和服务提供商之间使用一些队列来完成吗?

1 个答案:

答案 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>