有没有办法使用PostProcessInterceptor过滤特定类型的ServerResponse?

时间:2015-01-15 11:45:51

标签: java rest resteasy

PostProcessInterceptor将拦截所有类型的响应。但就我而言,我有两类回应。我必须截取一种并放弃另一种未触及的(作为普通的json字符串结果)。

我是否有办法跳过对其他响应类型的拦截。可能是某种标记?或者有没有办法以不同的方式做这件事?

1 个答案:

答案 0 :(得分:1)

使用JAX-RS 2,您可以name binding使用ContainerResponseFilter。定义注释:

@NameBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Special {}

并标记过滤器:

@Provider
@Special
public class SpecialFilter implements ContainerResponseFilter {}

只有在资源类或方法也注释@Special时才会执行过滤器。

如果您需要使用已弃用的PostProcessInterceptor,则无法使用名称绑定。但if方法中的简单postProcess也会这样做。