1
(我使用的是1.7泽西)ResourceFilterFactory和非路径注释资源
我试图在我的项目中添加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>
我对过滤器厂的理解是否有缺陷?
它确实,我一直在运行这个类的设置很多,我只使用ResourceFilterFactory碰到了一个问题。这个例子和我的代码唯一的区别在于子类是用@Produces注释的。 – tousdan
事实证明,你之前的工作对我来说很陌生。在实现ResourceFilterFactory之前,您使用什么URL来击中B类中定义的子资源“doOtherGet()”? – Rosa
那将是/ a/b上的GET。就像我之前所说的,我一直在多台开发机器上运行这个设置,并在大约一年的时间内生产。 – tousdan