我想在REST调用完成时调用一些自定义方法,查找原始方法和生成的响应的注释。
我知道您可以使用PostProcessInterceptor
或MessageBodyWriterInterceptor
执行此任务,但如果出现异常,则不会被调用。
我当前的解决方案是每个方法抛出一个特殊异常,然后由自定义ExceptionMapper
处理,但是我没有关于原始请求及其来源的信息。
是否有可以绑定的全局广泛处理程序,以便在发生异常时获取有关原始请求的信息?
是的,我知道这个问题:RestEasy Post Process Interceptor chain not traversed when response created by ExceptionMapper
答案 0 :(得分:3)
回答我自己的问题。
可以将原始请求注入ExceptionMapper
并相应地做出反应或执行自定义操作。
@Provider
public class MyExceptionMapper implements ExceptionMapper<Throwable> {
@Context
private HttpServletRequest request;
@Override
public Response toResponse(Throwable exception)
{
// trigger event
triggerOnExceptionEvent(request, exception);
}
...
}