3

esb でプロキシの faultsequence を使用する方法

EndPoint で障害が発生したときに faultsequence を使用したい。たとえば、jconsole を使用して service1 を停止し、プロキシ サービスを呼び出すときにメッセージを service2 にルーティングしたいとします。しかし、soapuiを使用してプロキシを呼び出すと、次のメッセージが表示されます:システムが非アクティブなサービスにアクセスしようとしています..

<target>
  <inSequence >
     <send>
        <endpoint name="cal" >     
         <address uri="http://localhost:9763/services/service1/"/>   
        </endpoint>
     </send>
  </inSequence>
  <faultSequence>
     <log level="custom">
        <property name="text" value="An unexpected error occured for service"/>
        <property name="message" expression="get-property('ERROR_MESSAGE')"/>
    </log>
     <send>
        <endpoint>
           <address uri="http://localhost:9763/services/service2/"/>
        </endpoint>
     </send>
  </faultSequence>

私を導いてください!

4

2 に答える 2

1

エンドポイント 1 が非アクティブの場合、soap 障害が返され、障害シーケンスに進む必要があります。しかし、現時点では、その障害シーケンスは応答と見なされ、クライアント (soap ui) に送信されます。

WSO2 ESB 4.5.0 以降では、新しいプロパティ FORCE_ERROR_ON_SOAP_FAULT が追加されました。このプロパティを設定すると、soap 障害が障害シーケンスに送信されます。障害シーケンスにいるときに、次のロジックを実行できます (たとえば、別のシーケンスを呼び出す)。

サンプルのプロキシ サービスについては、[1] を参照してください。

[1] http://maharachchi.blogspot.com/2012/09/now-you-can-send-soapfaults-to-fault.html

于 2013-04-22T03:21:46.457 に答える