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