Rest Filter: 在 SERVER 运行时注册的过滤器没有实现适用于 SERVER 运行时的任何提供者接口。

15

我遇到了一个错误:

在SERVER运行时注册的提供程序com.xyx.in.astra.aqr.security.application.requestFilter.UniversalSessionManagerFilter 没有实现适用于SERVER运行时的任何提供程序接口。 由于约束配置问题,将忽略提供程序com.xyx.in.astra.aqr.security.application.requestFilter.UniversalSessionManagerFilter。

注意:

  1. 这个UniversalSessionManagerFilter过滤器位于服务器类路径中的外部jar文件中
  2. 我在过滤器上使用了@Provider注解和@Priority注解来定义优先级
  3. 这是一个REST服务器过滤器

2
Jersey 2和Jersey 1使用不同的ContainerRequestFilters。Jersey 2使用标准的JAX-RS接口,而Jersey 1使用特定于实现的接口。它们具有不同的打包方式和略微不同的契约。您需要确保使用适用于您正在使用的Jersey版本的正确接口。 - Paul Samsotha
1个回答

7

这在Jersey中被报告为一个问题。请参见Jersey问题#3700

使用Jersey 2.26,如果您直接在ResourceConfig上注册一个已实例化的资源对象,则会触发警告消息。但是,该警告是有意的。

您可以注册一个类而不是实例。或者您可以通过AbstractBinderFeature配置资源。

如果警告实际上来自第三方库在ResourceConfig上注册资源实例,则可以通过按建议抑制org.glassfish.jersey.internal.inject.Providers记录器的日志消息来解决它,如Jersey ticket所述。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接