Spring Jersey和Spring boot在一起



我最近才知道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有机会这样做。

相关内容

最新更新