0

在我的顺序中介中,我需要对输入值处理一些逻辑,并基于此决定是调用 Web 服务还是返回故障。我已将序列定义如下

<sequence xmlns="http://ws.apache.org/ns/synapse" name="m1">
    <class name="com.myclass">
    </class>
    <makefault version="soap11">
        <code xmlns:soap11Env="http://schemas.xmlsoap.org/soap/envelope/" value="soap11Env:Client"/>
        <reason value="ERROR_MESSAGE"/>
        <role>Acc</role>
        <detail>Test Details</detail>
    </makefault>
    <log/>
</sequence>

问题是默认情况下 web 服务总是将故障信息传递给 web 服务。我如何做到以下几点 1. Incase 在 Mediator 中引发自定义异常,soap 错误将被抛出回 web 服务客户端。2.如果所有信息都正确,则Web服务被正确调用并且客户端得到正确的响应。

4

1 回答 1

0

您需要定义一个单独的序列来处理故障。然后,在您的 InSequence 中,您需要将该故障序列设置为“onError”属性。所以你的 InSequence 看起来像

<sequence xmlns="http://ws.apache.org/ns/synapse" name="m1" onError="yourFaultSequence">
    <class name="com.myclass">
    </class>
    <log/>
    <send/>
</sequence>

添加了上面的配置以给出一个想法。注意onError属性。 以下示例也将有所帮助。

于 2012-10-30T04:31:56.613 回答