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

Tomcat 修改端口不生效:環境變量 CATALINA_HOME 指向舊安裝目錄導致啟動錯誤實例

     編輯:程式設計綜合問答

現象

  • 修改 server.xml <Connector port="8888"/>。
  • 啟動 startup.bat,訪問 localhost:8888 404,localhost:8080 仍可訪問。

根因排查過程

  1. 檢查 server.xml 已保存、無語法錯誤。
  2. 檢查啟動日志 catalina.out / 控制台,發現啟動路徑指向舊安裝目錄。
  3. 環境變量 CATALINA_HOME / CATALINA_BASE 指向 **舊版 Tomcat (A)**。
  4. 運行 startup.bat 實際啟動的是 A,而修改配置的是 **新版 Tomcat (B)**。

解決步驟

  1. 刪除系統環境變量 CATALINA_HOME、CATALINA_BASE (若存在)。
  2. 在新版 Tomcat (B) 目錄下直接雙擊 bin/startup.bat,腳本會自動推導 CATALINA_HOME 為當前目錄。
  3. 或在 setenv.bat (Windows) / setenv.sh (Linux) 中顯式設置:
    set CATALINA_HOME=D:\apache-tomcat-9.0.x
    set CATALINA_BASE=D:\apache-tomcat-9.0.x
    
  4. 驗證:控制台輸出 Server startup in xxx ms,訪問新端口成功。

最佳實踐:避免環境變量衝突

做法優點
不設置全局 CATALINA_HOME 每個 Tomcat 實例獨立運行,互不干擾
使用 setenv.bat/sh 定制實例配置 JVM 參數、端口、編碼、類加載器隔離
多實例部署:複製 conf/ logs/ temp/ webapps/ work/ 目錄,共享 bin/ lib/ 節省磁盤、統一升級核心庫
systemd / Windows Service 註冊時指定完整路徑 生產環境穩定、開機自啟

常見誤區

以為修改 webapps/ROOT/WEB-INF/web.xml 可改端口
端口在 server.xml <Connector> 配置,與 Web 應用無關。
修改後未重啟
Tomcat 需完全重啟 (shutdown → startup) 讀取新配置,熱部署不生效。
端口被佔用
netstat -ano | findstr :8888 檢查,殺掉佔用進程或換端口。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved