1

当我调用我的 spring-boot 应用程序“ localhost:8080/api/players ”的上下文根时,它通过注释 @GetMapping(path= {"/",""}) 在 RestController 方法中映射,总是重定向(httpstatus: 307 临时重定向)到“ localhost:8080/api/players/ ”在末尾添加斜杠。

我的应用程序上下文根确实是spring-boot application.properties 文件(server.servlet.context-path=/api/players 中定义的 /api/players

我已经尝试使用嵌入式 tomcat 并且通过设置属性server.tomcat.redirect-context-root=false它可以正常工作

有一种方法可以将 undertow 配置为像 tomcat 一样?

4

1 回答 1

0

仔细查看源代码,看起来相关代码在这里ServletInitialHandler.java,如果请求是升级请求,它将发出 307 重定向状态码......除非请求是 HTTP 2 升级请求。这似乎不能由服务器配置,尽管有一些尝试根据客户端的操作来避免重定向。

可能值得查看您的 HTTP 请求,更好地了解您的 HTTP 客户端是否确实在发出升级请求,然后考虑接受这一事实,或者更改客户端以发出不同类型的请求(可能通过使其发送 HTTP2升级请求标头)。

于 2019-02-06T15:46:29.347 回答