クラスのセットを RESTful サービスとして公開しているサーバーがあります。クライアントに例外を渡すためにExceptionMapperを使用できることを理解しています。クライアントとサーバー間で共有されるチェック例外はほとんどありません。ただし、一部のサービスでは、クライアント JVM で使用できないチェック例外がほとんどありません。
チェック例外が適切に処理されるようにエンドポイントを変更すると、問題が解決することを理解しています。
しかし、次の 2 つの理由から、インターセプター レイヤーで実行したいと考えています。
- チェック例外につながるすべての呼び出しを処理できる単一の場所になります。
- 現在のリリース日のため、これは大きなリファクタリング作業になるでしょう。
CXF documentationを見ると、拡張AbstractPhaseInterceptor
してオーバーライドする必要があることを理解していますhandleMessage()
public class MyOutExceptionInterceptor extends AbstractPhaseInterceptor<Message> {
public AttachmentInInterceptor() {
//Which phase to call here ??
super(Phase.POST_INVOKE);
}
public void handleMessage(Message message) {
//Check from message that it contains an exception of MyCheckedException.class
//Create an exception that client can understand
}
}
これを行うにはどうすればよいですか?
前もって感謝します。