gpt4 book ai didi

java - 你能结合 Jersey 和 Spring(@Provider 和@Component)吗?

转载 作者:行者123 更新时间:2023-11-30 08:17:06 27 4
gpt4 key购买 nike

我已经在做的事情:

  1. Spring 版本 4.1.4.RELEASE
  2. Jersey 版本 2.14
  3. 我添加了 Maven 依赖项 jersey-spring3 并从中排除了 spring(spring-core、spring-web、spring-beans)。
  4. 扫描 Spring 组件 - @ComponentScan
  5. “ Controller ”在 Jersey 的 ResourceConfig 中注册...
  6. ... 并用 @Path@Component 注释...
  7. ... 这样 @Autowired bean 从数据库中获取 (@Transactional) POJO...
  8. ...和 ​​Jersey 在某些 @Provider 的帮助下以 JSON 的形式返回它们。

问题似乎是,在我添加注释 @Component 后,用 @Provider 注释的类停止工作。

有人成功地组合了这些注释吗?如果是,那我错过了什么?如果没有,那么很明显我必须转向替代库。 :)

最佳答案

虽然我认为使用 RestController 可能是更好的方法,但这段代码(下面)有效 - 所以我的回答可能对每个被迫使用 Jersey + Spring(无论出于何种原因...)的人都有用

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;

import javax.persistence.EntityNotFoundException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class EntityNotFoundExceptionMapper implements ExceptionMapper<EntityNotFoundException> {

private final ApplicationContext applicationContext;

@Autowired
public EntityNotFoundExceptionMapper(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}

@Override
public Response toResponse(EntityNotFoundException exception) {
return Response.status(Response.Status.NOT_FOUND).build();
}
}

关于java - 你能结合 Jersey 和 Spring(@Provider 和@Component)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28054900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com