泽西响应过滤器
Posted
技术标签:
【中文标题】泽西响应过滤器【英文标题】:Jersey Response Filter 【发布时间】:2014-02-10 15:59:05 【问题描述】:我正在尝试创建一个球衣过滤器来过滤服务器对 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>
【问题讨论】:
【参考方案1】:您在应用程序中混合了 Jersey 的 2 个版本:实现来自 JAX-RS 2.0 (Jersey 2) 的 ContainerRequestFilter 和 Jersey 1 的描述符配置 (web.xml)(参见前缀 com.sun.jersey
)。以下文章解释了如何在 Jersey 2 中注册提供程序:
看来你我们在 Jersey 1 中使用ResourceFilterFactory
。这个概念在 Jersey 2 中不存在,但有一个新概念(直接在 JAX-RS 2.0 中)如何做到这一点:
【讨论】:
谢谢你...帮助很大。【参考方案2】:当您使用 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>
【讨论】:
以上是关于泽西响应过滤器的主要内容,如果未能解决你的问题,请参考以下文章