Java 将SpringREST控制器映射到没有servlet上下文的路径

Java 将SpringREST控制器映射到没有servlet上下文的路径,java,spring,rest,spring-boot,Java,Spring,Rest,Spring Boot,我有一个具有以下上下文路径的spring引导应用程序: server.servlet.context-path:/api 我需要编写一个映射到 而不是 有没有办法做到这一点?更改“server.servelt.context path”值不是一个选项 这就是我尝试过但没有成功的地方: @GetMapping(value="../signout"){ public void logout(){ } Nero,您说您不能更改“server.servlet.context path”值。我打赌你这

我有一个具有以下上下文路径的spring引导应用程序:

server.servlet.context-path:/api
我需要编写一个映射到 而不是

有没有办法做到这一点?更改“server.servelt.context path”值不是一个选项

这就是我尝试过但没有成功的地方:

@GetMapping(value="../signout"){
public void logout(){
}

Nero,您说您不能更改“server.servlet.context path”值。我打赌你这么说是因为你不想破坏API,但我认为你可以在不破坏API的情况下改变它。将上下文路径设置为空白,这是允许的。然后在应用程序中,将“api”映射(我假设当前为“/”)更改为“api”

  • server.servlet.context path:/api
    更改为
    server.servlet.context path://
    server.servlet.context path:
    (无斜杠)。(假设这是默认设置,因此您可以完全删除此条目。)

  • 应用程序中的某个地方将
    @RequestMapping(“/”)更改为
    @RequestMapping(“/api”)

  • 现在,您还可以拥有
    @GetMapping(value=“/signout”)
    ,并且您将拥有位于和的资源


    我不知道您正在使用什么映射注释,但希望这足够清楚。

    在该应用程序中,可能无法超出其上下文根。也许你可以为这个特定的url创建一个单独的Rest服务应用程序,并从那里获取它。

    你的问题是什么?不,这是不可能的。你们都想要一个不同的上下文路径,并拒绝更改所使用的上下文路径。当设置上下文路径时。。。您是说您的整个应用程序都属于该路径
    http://localhost:8080/api/logout
    我想这样做的原因是/api受到我们siteminder的保护。但根据siteminder SME,注销url需要是一个不受保护的路径。因此,注销url中不需要上下文路径