2

例外がスローされた場合に例外をログに記録し、返される応答を変更できるように、REST リソースでインターセプターのようなソリューションをセットアップできるかどうかを判断しようとしています。基本的に、すべての REST リソースを try/catch ブロックでラップしたくありません。REST リソースが管理されている場合、すべての呼び出しで @Interceptor を使用するだけですが、管理されていないため、問題外のようです。

4

1 に答える 1

2

実装を使用できますjavax.ws.rs.ext.ExceptionMapper。コードがYourFancyExceptionリソースから をスローするとします。次に、次のマッパーを使用できます。

@Provider
public class YourFancyExceptionMapper 
                implements ExceptionMapper <YourFancyException> {
    @Override
    public Response toResponse(YourFancyException exception) {
        return Response.status(Response.Status.BAD_REQUEST)
                        .entity(exception.getMessage()).build();
    }
}

@Providerマッパーに で注釈を付け、リソース メソッドを throw にすることを忘れないでくださいYourFancyException

于 2012-09-19T20:51:25.420 に答える