泽西响应过滤器

时间:2014-01-21 07:20:52

标签: java filter jersey servlet-filters jersey-2.0

我正在尝试创建一个球衣过滤器,用于过滤所有服务器500错误的响应。

但是我对滤镜知之甚少,所以我刚刚开始编写一些代码,但我不知道如何继续......任何人都可以帮我解决这个问题。

@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
}

我的web.xml看起来像这样

<servlet>
<servlet-name>Authenticator</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
    <param-name>com.sun.jersey.spi.container.ResourceFilters</param-name>
    <param-value>com.query.displayer.Filters</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Authenticator</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

2 个答案:

答案 0 :(得分:4)

您在应用程序中混合了两个版本的Jersey:从JAX-RS 2.0(Jersey 2)实现ContainerRequestFilter和为Jersey 1实现描述符配置(web.xml)(请参阅前缀{{1} })。以下文章解释了如何在Jersey 2中注册提供程序:

看来你我们在Jersey 1中使用com.sun.jersey。这个概念在Jersey 2中不存在,但是有一个新概念(直接在JAX-RS 2.0中)如何做到这一点:

答案 1 :(得分:0)

使用Jersey-2时,必须使用以下配置将过滤器注册到web.xml

<强> jersey.config.server.provider.classnames

而不是

com.sun.jersey.spi.container.ContainerRequestFilters (jersey-1x)

 <!-- This is the config needed -->
<servlet>    
      //...         
     <init-param>
         <param-name>jersey.config.server.provider.classnames</param-name>
         <param-value>com.your_package_path.yourClassFilter</param-value>
     </init-param>
      //...
</servlet>