仅在同一包中应用过滤器
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
,公共父包,因为它会递归地扫描包。
对于 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
,公共父包,因为它会递归地扫描包。