仅在同一包中应用过滤器

Filter only applied if in the same package

对于 Java EE 应用程序,我创建了一个自定义 javax.ws.rs.container.ContainerRequestFilter,如 Abhishek 所记录。基本上 运行 没问题。但是,当我将注释和过滤器(例如从 com.foo.resources)移动到同一级别的另一个包(例如 com.foo.filters)时,过滤器不再应用。 为什么不呢?

如果将过滤器和注释移至子包(例如来自 com.foo.resources.filters),它确实有效。

听起来您正在对您的应用程序配置使用一些包扫描,并且您已将 com.foo.resources 列为要扫描的包。使用此包和所有 sub-packages 递归地用于所有 @Path@Provider 类,然后注册它们。如果你想使用多个包,那么你应该能够列出它们,用逗号分隔。我建议只使用 com.foo,公共父包,因为它会递归地扫描包。