有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java RestEasy对每个请求执行自定义操作

我想在REST调用完成后调用一些自定义方法,查找原始方法和生成的响应上的注释

我知道您可以使用PostProcessInterceptorMessageBodyWriterInterceptor来执行此任务,但它们在异常情况下不会被调用

我目前的解决方案是,每个方法都会抛出一个特殊的异常,然后由一个自定义的ExceptionMapper处理,但是我没有关于原始请求及其来源的信息

是否有一个全局范围的处理程序可以绑定,以便在出现异常时获取原始请求的相关信息

是的,我知道这个问题:RestEasy Post Process Interceptor chain not traversed when response created by ExceptionMapper


共 (1) 个答案

  1. # 1 楼答案

    回答我自己的问题

    可以将原始请求注入ExceptionMapper,并相应地做出反应或执行自定义操作

    @Provider
    public class MyExceptionMapper implements ExceptionMapper<Throwable> {
    
    
        @Context
        private HttpServletRequest request;
    
        @Override
        public Response toResponse(Throwable exception)
        {
    
             // trigger event
             triggerOnExceptionEvent(request, exception);
        }
    ...
    }