我试图在现有的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";
}


}


如果可以,请尝试一次。

07-27 14:01