1

開発中のJAX-WSベースのアプリケーションがあります。を使用してサーバーからWSDLを生成し、を使用しwsgenてクライアントライブラリを構築しますwsimport。メソッド呼び出しでスローする独自のカスタム例外を作成しています。コードは次のように構成されています。

カスタム例外クラス:

@WebFault(faultBean = "com.mysite.FaultBean")
public class MyCustomException extends Exception {
  private FaultBean faultInfo;

  //Getters/Setters/Constructors...
}

カスタムフォールトBean:

public class FaultBean {
  private String message;
  private List<String> messages;

  //Getters/Setters/Constructors...
}

MyCustomException次に、Webサービスエンドポイントのメソッドからスローします。Webサービスメソッドの1つを呼び出して例外をスローすると、クライアントはのSOAPFaultException代わりにを取得しますMyCustomException。カスタム例外が使用されないのはなぜですか?

4

1 に答える 1

1

そのため、少し調査したところ、スローされていた例外はSOAPFaultException、私が思っていた場所から来ていなかったことがわかりました。それらは実際には としてスローされませんでしたMyCustomException。したがって、すべてのケースでこれを解決するために、Spring AOP を利用し、Around アスペクトを作成して、Web サービス実装レイヤーへのすべての呼び出しをラップしました。

この側面では、スローされた例外をキャッチし、再スローするMyCustomException前にラップします。その後、クライアントは例外を適切に処理できます。

于 2012-09-27T12:06:22.000 に答える