首页 文章

在ExceptionMapper创建响应时,不会遍历RestEasy Post Process Interceptor链

提问于
浏览
6

我正在使用RestEasy构建我的Restful Web服务 . 我已经实现了ExceptionMappers来准备特定的异常响应 .

我还实现了MessageBodyWriterInterceptors和一些PostProcessorInterceptors .

Issue: 当任何资源没有抛出任何异常时,一切正常 . 我的实现按预期工作 . 调用所有后处理器拦截器和消息体编写器拦截器 .

但是,当从任何资源方法抛出异常时,将调用已注册的ExceptionMappers并创建响应 . 但在这种情况下,不会遍历后处理器拦截器链 . 他们没有被召唤 .

在这种情况下我该怎么办在我的异常映射器中写入该拦截器逻辑,或者是否有可用的解决方案?

1 回答

  • 11

    如果抛出异常,则不会调用后处理器 . 它们位于不同的并行解析路径上:

    / 'Normal' JAX-RS response -> Post Processors -> Message Body Writers
    Processing
               \  Exception -> Exception Mappers
    

    如果您的逻辑需要在后处理器和异常映射器中运行,那么您需要将它合并到两者中(最好通过一个通用的实用程序类) .

相关问题