Spring 在外部提供时启动 REST 网络服务端点 Tomcat
Spring Boot REST webservice endpoint when provided external Tomcat
我有一个使用 Spring Boot 和 Maven 构建的简单 java Web 应用程序。每次我在 pom.xml 中修改我的工件版本时,我的 Web 服务端点都会发生变化。
例如,假设在控制器中 class 我有 @RequestMapping("/api/v1/") 注释并假设以下 pom 摘录
<artifactId>myConv</artifactId>
<version>1.0.0</version>
Web 服务端点将是 http://localhost/myConv-1.0.0/api/v1/...
如果我将版本更改为 1.0.2,端点将为 http://localhost/myConv-1.0.2/api/v1/...
如何让它静态化?
谢谢。
更新
我发现该解决方案不起作用,因为提供的服务器 (Wildfly) 覆盖了 spring 应用程序上下文。
我已经解决了按指定更改上下文的问题 here。
但是有人能解释一下为什么吗?
更新 2 - 在外部服务器上部署时的解决方案
我发现这个指南看起来不错 https://octopus.com/blog/defining-tomcat-context-paths
您需要设置上下文路径属性
server.servlet.context-path=/
在您的 application.yml
或 application.properties
中,您将能够访问 REST api 作为
http://localhost/api/v1/
.
您需要配置
server.servlet.context-path
看看官方文档
spring boot documentation
我有一个使用 Spring Boot 和 Maven 构建的简单 java Web 应用程序。每次我在 pom.xml 中修改我的工件版本时,我的 Web 服务端点都会发生变化。
例如,假设在控制器中 class 我有 @RequestMapping("/api/v1/") 注释并假设以下 pom 摘录
<artifactId>myConv</artifactId>
<version>1.0.0</version>
Web 服务端点将是 http://localhost/myConv-1.0.0/api/v1/...
如果我将版本更改为 1.0.2,端点将为 http://localhost/myConv-1.0.2/api/v1/...
如何让它静态化?
谢谢。
更新
我发现该解决方案不起作用,因为提供的服务器 (Wildfly) 覆盖了 spring 应用程序上下文。
我已经解决了按指定更改上下文的问题 here。
但是有人能解释一下为什么吗?
更新 2 - 在外部服务器上部署时的解决方案
我发现这个指南看起来不错 https://octopus.com/blog/defining-tomcat-context-paths
您需要设置上下文路径属性
server.servlet.context-path=/
在您的 application.yml
或 application.properties
中,您将能够访问 REST api 作为
http://localhost/api/v1/
.
您需要配置
server.servlet.context-path
看看官方文档 spring boot documentation