想要在外部 Tomcat 服务器版本 9 中更改 Spring 引导应用程序中的上下文路径

Want to change the context path in Spring boot application in an external Tomact server version 9

我想在外部 Tomcat 服务器版本 9 中部署一个 Spring 引导应用程序。我能够部署它并在端点上工作。但是我在 application.properties 文件中设置的属性不起作用。就像 server.servlet.context-path=/myapp 是行不通的,我得到的上下文路径是 http://localhost:8080/myapp-0.0.1-SNAPSHOT/api/ping.

我正在使用 2.3.10.RELEASE 和 Java 1.8 和 Tomcat 版本 9.0.46 谁能帮我解决这个问题。

但在嵌入式 tomcat 上一切都完美无缺。在此先感谢和任何建议,非常感谢评论。

谁能帮我解决这个问题 - 我的 war 文件名是 myapp-0.1.war 但应用程序的上下文路径是这样的 localhost:8080/myapp/api/ping

在构建文件中使用 finalName 属性(pom.xml for maven)

<finalName>myapp</finalName>

当您 运行 在外部 servlet 容器中启动 Spring 应用程序时,server.* 属性 适用。

如果您愿意更改命名约定,您可以将名为 myapp##0.1.war 的 WAR 文件放入 $CATALINA_BASE/webapps 目录并受益于并行部署(参见 parallel deployment).

如果你想坚持你的命名约定,你可以为你的 WAR 文件创建一个文件夹(例如 $CATALINA_BASE/webapps-available)并创建一个部署描述符 $CATALINA_BASE/conf/<engine_name>/<host_name>/<context_path>.xml(在你的情况下可能 $CATALINA_BASE/conf/Catalina/localhost/myapp.xml) 具有以下内容:

<Context docBase="${catalina.base}/webapps-available/myapp-0.1.war" />