首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Tomcat server.xml 中 Context path 修改後重啟失效的解決方法

     編輯:程式設計綜合問答

問題現象

Maven 項目修改 server.xml 中 <Context path="/newPath" ...> 後,首次啟動正常,再次啟動 path 自動恢復原值,項目名稱也變回原狀。

原因分析

Tomcat 在啟動時會讀取 server.xml,但若項目部署在 webapps 目錄下,Tomcat 會根據 WAR 包或目錄名稱自動創建 Context,覆蓋手動配置。Maven 打包生成的 WAR 名稱(如 project-1.0.war)決定了默認上下文路徑。

解決方案

方法一:修改 WAR 包名稱(推薦)

在 pom.xml 中指定最終構建名稱:

<build>
    <finalName>myapp</finalName> <!-- 生成 myapp.war -->
</build>

部署後訪問路徑為 https://host:port/myapp,無需修改 server.xml。

方法二:配置 Tomcat 獨立 Context 文件

在 $CATALINA_BASE/conf/Catalina/localhost/ 下創建 myapp.xml:

<Context path="/myapp" docBase="/path/to/myapp.war" reloadable="true" />

此配置優先級高於 server.xml 和自動部署,且不會被覆蓋。

方法三:禁止自動部署(不推薦生產環境)

在 server.xml 的 <Host> 中設置:

<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false">

但會導致熱部署失效,需手動管理部署。

參考鏈接

詳細說明見:Tomcat Context path 配置詳解

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved