【发布时间】:2015-07-07 10:13:14
【问题描述】:
我正在尝试通过 web.xml 将 Jersey2 ContainerRequestFilter 添加到 webapp。目前我总是使用 here 描述的带有 servlet 的符号:
<servlet>
<servlet-name>MyApplication</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
...
</init-param>
</servlet>
...
<servlet-mapping>
<servlet-name>MyApplication</servlet-name>
<url-pattern>/myApp/*</url-pattern>
</servlet-mapping>
现在在另一种情况下,我没有 servlet,而是在 tomcat 上运行了一个 wicket 应用程序,我想使用我的过滤器。因此,我尝试使用上述同一篇文章中描述的替代过滤器表示法(示例 4.10):
<filter>
<filter-name>MyApplication</filter-name>
<filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class>
<init-param>
...
</init-param>
</filter>
...
<filter-mapping>
<filter-name>MyApplication</filter-name>
<url-pattern>/myApp/*</url-pattern>
</filter-mapping>
我成功地将它与 Jersey1 过滤器符号一起使用,但无法使其与 Jersey2 过滤器一起使用(这个是最新的,所以我更喜欢它而不是旧的)。
不幸的是,我发现此功能的文档很差。如果这可行,任何人都可以提供帮助吗?如果可行,该怎么做?
【问题讨论】:
-
你为什么不在过滤器上添加一个
@Provider注释并让它通过扫描被拾取,就像你所有的资源类都被扫描@Path一样。见 4.7.1.2。来自您的链接。 -
感谢您的提示。无论如何,我的过滤器已经被 @Provider 注释了,但是我在包中有几个过滤器类,我不希望它们都被应用。实际上我使用了链接中4.7.1.3中描述的方式。两者都应请求产生 404...
标签: java tomcat filter jersey-2.0