【问题标题】:Use Jersey Filter in Spring Boot Jersey在 Spring Boot Jersey 中使用 Jersey 过滤器
【发布时间】:2017-11-08 02:09:28
【问题描述】:

我有一个 Jersey REST API,我们计划将其迁移到 Spring Boot。

我有一个实现ContainerRequestFilter 的过滤器,并且在过滤器中有@Provider 注释。我在ResourceConfig 注册了过滤器。但我仍然没有看到过滤器正在执行。

但是我确实收到了一条警告消息:- 在 SERVER 运行时注册的提供者“我的过滤器类”不实现任何适用于 SERVER 运行时的提供者接口。由于约束配置问题,提供程序“我的过滤器类”将被忽略。

我想将球衣用作 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);
    }
}

【问题讨论】:

  • 你能发布你的代码吗?
  • 你的意思是说,除了迁移到 Spring Boot 之外,你还想保留 ContainerRequestFilter 并且在到达 Spring Boot Controller 之前它应该先拦截过滤器?
  • @SubhasishSahu - 是的,你是对的

标签: spring-boot filter jersey


【解决方案1】:

您执行错误的ContainerRequestFilter。您使用的是 Jersey 1.x。我不知道为什么您的项目中甚至还有 Jersey 1.x 罐子。您应该实施的ContainerRequestFilter(适用于 2.x)是

javax.ws.rs.container.ContainerRequestFilter javax.ws.rs.container.ContainerResponseFilter

【讨论】:

  • 是的,这解决了这个问题。我更换了过滤器,它现在可以工作了。非常感谢您抽出宝贵时间对此进行调查。
  • @Deepa 请选择它作为答案。
猜你喜欢
  • 2013-03-12
  • 2016-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
  • 1970-01-01
  • 2021-01-02
相关资源
最近更新 更多