我有一个Jersey rest API,我们计划迁移到Spring启动。
我有一个过滤器,它在过滤器中实现了ContainerRequestFilter
并且有@Provider
个注释。我在ResourceConfig
中注册了过滤器。但我仍然没有看到过滤器正在执行。
但是我收到一条警告信息: - 提供者"我的过滤器类"在SERVER运行时中注册的实现不会实现SERVER运行时中适用的任何提供程序接口。由于约束配置问题,提供商"我的过滤器类"将被忽略。
我想使用jersey作为servlet,所以更换球衣以表现为过滤器对我的应用程序不起作用。
有人可以帮我吗?
这是我的代码
泽西过滤器
@Provider
public class CustomJerseyLoggingFilter implements ContainerRequestFilter, ContainerResponseFilter {
@Override
public ContainerRequest filter(ContainerRequest request) { }
@Override
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) { }
}
@Component
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
register(CustomJerseyLoggingFilter.class);
}
}
答案 0 :(得分:3)
您正在实施错误的ContainerRequestFilter
。你使用的是来自Jersey 1.x.我不知道为什么你的项目中甚至还有Jersey 1.x罐子。您应该实现的ContainerRequestFilter
(对于2.x)是
javax.ws.rs.container.ContainerRequestFilter
javax.ws.rs.container.ContainerResponseFilter