(我使用的是泽西岛 1.7)
我正在尝试在我的项目中添加一个 ResourceFilterFactory 以使用注释选择每个方法使用的过滤器。
ResourceFilterFactory 似乎能够过滤使用 Path 注释注释的资源,但它似乎不会尝试为调用的资源的 SubResourceLocator 的方法生成过滤器。
@Path("a")
public class A {
//sub resource locator?
@Path("b")
public B getB() {
return new B();
}
@GET
public void doGet() {}
}
public class B {
@GET
public void doOtherGet() { }
@Path("c")
public void doInner() { }
}
运行时,过滤器工厂只会被以下调用: AbstractResourceMethod(A#doGet) AbstractSubResourceLocator(A#getB)
当我期望为子资源的每个方法调用它时。
我目前在我的 web.xml 中使用以下选项;
<init-param>
<param-name>com.sun.jersey.spi.container.ResourceFilters</param-name>
<param-value>com.my.MyResourceFilterFactory</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.my.resources</param-value>
</init-param>
我对滤清器厂的理解有问题吗?