ResourceFilterFactory и ресурсы без комментариев

(Я использую Джерси 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>

Мое понимание фабрики фильтров неверно?

1 ответ

Вам нужно использовать аннотацию @Path на уровне класса для класса B. Когда Джерси выполняет сканирование ресурсов, я уверен, что он не выберет этот класс в качестве ресурса.

Другие вопросы по тегам