0

私の In sequence mediatior では、入力値に対していくつかのロジックを処理する必要があり、それに基づいて、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. メディエーターでスローされたカスタム例外がある場合、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 に答える