設置tomcat的catalina_home引發的問題


    有位同事求助,說他的tomcat更改端口不起作用,不管改成什么端口,總是只能以8080端口進行訪問。

    1,首先懷疑新的tomcat沒有啟動成功,比如舊的tomcat還在運行。重啟機器之后仍然如些,只能排除這個。

    2,懷疑是安裝的tomcat的服務,在windows的服務管理處,將服務進行刪除,仍無解。

    3,懷疑tomcat的配置被改動了,下載了一個新的tomcat,更改端口,仍無解。

    4,最后分析tomcat的catalina.bat腳本,發現如下代碼

rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"  
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..
set "CATALINA_HOME=%cd%"
cd "%CURRENT_DIR%"
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome

    恍然大悟,到系統環境變量里查看,果然設置了catalina_home變量。所以,每次啟動tomcat,不管是啟動哪個tomcat,實際上運行的都是catalina_home下的tomcat,更改端口不起作用也就不奇怪了。

 

    這是一個很少見的問題,因為一般人都不會配置catalina_home變量。我用了這么多年的tomcat,也從來沒有設置過這個變量,但從來沒有影響過使用。估計會使用這個變量的軟件不是很多,所以這個變量也就不如java_home那么為人所知了。

 

    程序員經常會遇到很多莫名奇妙的問題,但,作為一名程序員,我們要堅決相信,任何bug都是有原因的,只要認真仔細進行分析,總是可以找到原因的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM