2016-07-18 13 views
1

私は、Springインテグレーションゲートウェイフローで2つのWebサービスアウトバウンドゲートウェイを使用して2つの異なるWebサービスを呼び出しています。 私はSOAPフォールト を解決するために各ゲートウェイに2つのfault Resolverを実装しており、カスタムアプリケーション例外を作成し、resolverから例外ハンドラにスローしたいと思います。エラーメッセージリゾルバからCustomExceptionをスローすることができません

私のFaultResolverは、サービスコールからSOAPフォールトを受信するたびに呼び出されています。 しかし、私はIOExceptionを投げることしかできないので、私のリゾルバからカスタムエフェクトを投げることができませんでした。

これにより、私はリゾルバからのメッセージでランタイム例外をスローし、例外ハンドラでこのランタイム例外をキャッチします。 実行時例外をスローしてHandlerを捕捉するか、SOAPフォールトを処理してカスタムExceptionをスローするために、このシナリオまたは他の実装を処理する他のどの方法よりも優れた方法ですか。

答えて

1

解決策が良いかどうかを判断する最善の方法は、この問題について既定の実装をいくつか試してみてください。そのうちの一つがある:WebServiceFaultExceptionは正確にRuntimeException

public class SimpleFaultMessageResolver implements FaultMessageResolver { 

    public void resolveFault(WebServiceMessage message) { 
     if (message instanceof FaultAwareWebServiceMessage) { 
      throw new WebServiceFaultException((FaultAwareWebServiceMessage) message); 
     } 
     else { 
      throw new WebServiceFaultException("Message has unknown fault: " + message); 
     } 
    } 
} 

です。

だから、私はあなたが進んでいいと思います。

+0

情報ありがとう@Artem私の実装と一緒に行かせてください – springbootlearner

関連する問題