对于Java EE应用程序,我创建了Abhishek所记录的自定义javax.ws.rs.container.ContainerRequestFilter
。它基本上运行良好。但是,当我将注释和过滤器(例如从com.foo.resources
)移动到同一级别的另一个包(例如com.foo.filters
)时,则不再应用过滤器。 为什么不呢?
如果将过滤器和注释移动到子包(例如,从com.foo.resources.filters
),它确实有效。
答案 0 :(得分:0)
听起来您正在为应用程序配置使用某些程序包扫描,并且您已将com.foo.resources
列为要扫描的程序包。对于所有@Path
和@Provider
类,递归使用此包和所有子包,然后注册它们。如果你想使用多个包,那么你应该能够列出它们,用逗号分隔。我建议改为只使用公共父包com.foo
,因为它会以递归方式扫描包。