在我的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服务,客户端得到正确的响应。
答案 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也会有所帮助。