我试图在现有的sping引导应用程序中使用JerseyConfig
类,但是由于某种原因,当我添加此配置时:
@Component
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
register(Users.class);
register(Groups.class);
property("SCIM_IMPLEMENTATION_INSTANCE", new JerseyApplication());
}
}
@RestController端点不再像扩展那样工作。在应用此
JerseyConfig
类后,它们全部返回404。所有Jersey端点均正常运行。我可以在同一应用程序中使用JAX rs终结点(在我的情况下使用Jersey)和@RestCotroller吗?我需要一些配置,以将现有的REST服务与新的JAX rs端点分离。如果有人可以提供帮助,我将非常感激。谢谢!
最佳答案
有一个解决方案,可以将Jersey资源和Spring控制器组合在一起。您需要对设置进行几处更改。
将JerseyConfig的注释从@Component
更改为@Configuration
并添加控制器软件包以进行扫描// scan the resources package for your resources / restControlerpublic JerseyConfig(){ // other code packages(package_of_your_rest_controller);}
将其余控制器的注释从@ReuestMapping
更改为@Path
例如。如果您的控制器是这样的:
@RestController
@零件
公共类MyRestController {
@RequestMapping("/foo")
public String foo() {
return "foo";
}
}
变成这样:
@路径(”/”)
@零件
公共类MyRestController {
@Path("/foo")
public String foo() {
return "foo";
}
}
如果可以,请尝试一次。