如何在WSO2 ESB 4.8.1中进行异步调用

时间:2015-03-04 10:50:59

标签: wso2 wso2esb wso2dss

我有一个在http上公开的代理服务。收到请求后,服务会根据其架构验证它。现在,如果验证失败,服务应该向客户端发回错误响应,并且还应该将该错误消息发送到队列。

<validate [source="xpath"]>
   <property name="validation-feature-id" value="true|false"/>*
   <schema key="string"/>+
   <on-fail>
      mediator+
   </on-fail>
</validate>

问题:

我正在&#34;验证&#34;调解员&#34; on-fail&#34;序列。我通过使用&#34;响应&#34;发回该消息。调解员。发送回响应后,我想将此相同的错误消息发送到jms队列。但问题是&#34;回应&#34;调解员,没有调解员工作,如果我把&#34;呼叫&#34;介体&#34;在&#34;回应&#34;之前中介,只有消息被发送到队列,没有响应被发送回客户端。

要实现的目标: 总而言之,我需要在验证介体故障序列中执行以下两项操作。

  • 将回复发送回客户端。
  • 将回复发送到队列。

我如何实现这一目标,还是有其他方法来实现这一任务?

1 个答案:

答案 0 :(得分:2)

当你说

  

我正在&#34;验证&#34;调解员&#34; on-fail&#34;序列

我假设您正在使用payloadFactory。因此,一旦您构建了自定义消息,就可以使用&lt;克隆&gt;调解员将消息发送到2个目的地,如:

<clone>
    <target> 
        <sequence>
            <respond/>
        </sequence>
    </target>

    <target>
        <sequence>
            <send>
                <endpoint>
                    <address uri=""/> <!-- Specify the JMS connection URL here -->
                </endpoint>
            </send>
        </sequence>
    </target>
</clone>

希望对你有用!