看Tomcat源碼一段時間一直很好奇為什么有CATALINA_HOME和CATALINA_BASE區別:
分CATALINA_HOME和CATALINA_BASE概念是為了解決這樣的場景:
你需要在一臺機器上面部署多個Tomcat實例,但是你又不想創建多個Tomcat的副本,換句話說就是讓這些Tomcat副本擁有自己的工作目錄但是共享Tomcat的代碼。
關于CATALINA_HOME和CATALINA_BASE官方文檔上面是這樣解釋的:
[html] view plain copyThroughout the docs, you'll notice there are numerous references to $CATALINA_HOME. This rePResents the root of your Tomcat installation. When we say, "This information can be found in your $CATALINA_HOME/README.txt file" we mean to look at the README.txt file at the root of your Tomcat install. Optionally, Tomcat may be configured for multiple instances by defining $CATALINA_BASE for each instance. If multiple instances are not configured, $CATALINA_BASE is the same as $CATALINA_HOME. 翻譯過來就是CATALINA_HOME是Tomcat的安裝目錄,CATALINA_BASE是Tomcat的工作目錄CATALINA_BASE是和每個Tomcat實例相關的,接下來我們來一起玩一下上面描述的那個場景
先下一個Tomcat的zip發布版本可以在這里下載:http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.69/bin/
解壓到F盤,然后新建兩個目錄 分別為tomcat ins1和tomcat ins2

把Tomcat的共享文件夾分別拷貝到tomcat ins1和tomcat ins2中,有

然后在
然后在tomcat%20ins1的文件夾下創建startup.bat
文件內容如下:
[plain] view%20plain copyset "CATALINA_BASE=%cd%" set "CATALINA_HOME=F:/apache-tomcat-7.0.69" set "EXECUTABLE=%CATALINA_HOME%/bin/catalina.bat" call "%EXECUTABLE%" start 然后我們可以在tomcat%20ins1下的conf中的server.xml中修改http端口號分別為7070tomcat%20ins2的做法和tomcat%20ins1一樣只不過端口號改為9090
分別雙擊startup.bat
然后訪問Tomcat你會看到:
/
新聞熱點
疑難解答