我最近才知道JAX-RS和jersey是它的实现之一。我一直在使用Spring引导,直到现在与其他api一起工作。
我只是把这两个依赖放在一起做实验。所以我的诗是这样的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
现在我添加了一个控制器它的端点像
@Service
@Path("/")
@RestController
public class TestController {
@GET
@Path("/test")
public String test() {
return "Hello World";
}
@GetMapping("/test2")
public String test2() {
return "Hello World - spring";
}
}
如果我试着把这些端点加起来,比如
http://localhost:8080/test
和
http://localhost:8080/test2
我只得到jersey ("Hello World")的响应。
有没有人可以帮助我如何注册这些端点以及为什么@GetMapping端点不被识别。
谢谢。
您不应该将JAX-RS (@PATH
。@GET
等)和Spring MVC (@RestController
,@GetMapping
等)在同一类,甚至,理想情况下,在同一应用程序中。从spring的角度来看,@Service
和@RestController
也不应该一起使用。
如果你真的想混合Jersey和Spring MVC,你应该在单独的类中这样做。您还需要配置Jersey作为过滤器运行,并转发它无法处理的请求,以便Spring MVC有机会这样做。