0

我尝试使用带有 Jersey 的简单过滤器,但没有运气。我的过滤器:

public class JerseyHelloFilter implements ContainerResponseFilter {

    @Override
    public ContainerResponse filter(ContainerRequest creq, ContainerResponse cresp) {
        System.out.println("JerseyHelloFilter : filter");
        return cresp;
    }
}

我的 web.xml :

<servlet>
    <servlet-name>Log Filter</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
     <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
        <param-value>my.package.JerseyHelloFilter</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>Log Filter</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

我的 JSP 页面:/my.page/index.jsp
我的 JAX-RS 服务:/my.page/resources/*

使用上面的代码,我希望filter每次调用我的站点都会执行该方法并返回我的页面。但相反,我从过滤器获取日志,并且:HTTP Status 404 - Not Found当我尝试在浏览器中访问我的 index.jsp 欢迎文件时。我做错了什么?

4

1 回答 1

0

我怀疑您通过 Jersey 服务请求的 JAX-RS 映射可能是/services/*. 因此,您正在尝试过滤 Jersey 未配置为处理的请求。/*将匹配更广泛的 URL。

于 2013-08-10T14:22:12.693 回答