Wso2中介中的自定义错误处理程序

时间:2012-10-29 19:49:18

标签: wso2 mediator wso2carbon

在我的In sequence mediatior中,我需要处理输入值的一些逻辑,并根据我需要决定是否调用webservice或返回错误。我已将序列定义为以下

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

问题是默认情况下,webservice始终将故障信息传递给Web服务。我如何制作以下内容 1.如果在Mediator中抛出了一个自定义异常,则SOAP故障被抛回Web服务客户端。 2.包含所有信息正确,正确调用Web服务,客户端得到正确的响应。

1 个答案:

答案 0 :(得分: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 属性。 Following sample也会有所帮助。