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

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

我还实现了MessageBodyWriterInterceptors和一些PostProcessorInterceptors。

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

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

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

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

            /'正常'JAX-RS响应 - >后处理器 - >消息体写入器
处理
            \ Exception  - > Exception Mappers

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