(三)IDEA部署Tomcat原理
部署成功之后,發(fā)現(xiàn)好多都不太懂,不明白怎么就部署成功了,具體運行方式也不懂,所以就 在網(wǎng)上查了一些資料,還有一些有點不確定的因素,希望和大家一塊討論。
IDEA部署Tomcat原理
上一篇文章部署成功后,我們來對比一下IDEA運行服務(wù)器與直接運行服務(wù)器有什么異同?
- IDEA運行如下:
- 手動運行服務(wù)器操作如下
打開命令行窗口cmd,如果你沒有配置環(huán)境變量的話,進入到安裝Tomcat目錄下的bin文件夾下,輸入catalina run,界面如下:
兩者對比,發(fā)現(xiàn)只有CATALINA_BASE不同
那么到底發(fā)生了什么呢?CATALINA_BASE與CATALINA_HOME有什么不同呢?
官方解釋如下:
額,英語不太好。
上面的意思簡單來說就是CATALINA_HOME是安裝目錄,CATALINA_BASE是工作目錄。
這么做的好處就在于可以使用CATALINA_HOME安裝目錄下的資源,在CATALINA_BASE運行目錄下工作,而IDEA就是偷換了其中的CATALINA_BASE工作目錄。
我們進入IDEA運行的CATALINA_BASE目錄也就是上方箭頭指向的目錄,查看自己IDEA運行時顯示的文件夾,一般生成路徑如下:
C:\Users{本機名}.IntelliJIdea2018.3\system\tomcat\工程名\conf 你會看到三個文件夾
你每次建的Web項目都會分配一個tomcat實例,
這里面conf文件下有著同一份tomcat配置,
IDEA運行的時候就是用的這里面的配置,
所以你在Tomcat下面修改的配置就不起作用了,
而IDEA運行的時候依賴你安裝目錄下的lib和bin文件夾。
舉個例子,你隨便創(chuàng)建一個文件夾,將Tomcat里面的這4個文件夾復(fù)制過來
再創(chuàng)建兩個文件runCatalina.bat和stopCatalina.bat
runCatalina.bat內(nèi)容如下
stopCatalina.bat內(nèi)容如下
set "CATALINA_BASE=%cd%" <!--設(shè)置當(dāng)前路徑為CATALINA_BASE--> set "CATALINA_HOME=G:\Installation_Package\Tomcat\apache-tomcat-8.5.39\apache-tomcat-8.5.39" set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" call "%EXECUTABLE%" stop在該conf文件夾下server.xml中修改端口號,修改為8088,(可以不修改)
然后運行runCatalina.bat,會出現(xiàn)Tomcat界面,說明服務(wù)器打開成功
而IDEA就是這樣實現(xiàn)的,IDEA更換了CATALINA_BASE的內(nèi)容。
這樣方式用途在于你需要在一臺機器上面部署多個Tomcat實例,但是你又不想創(chuàng)建多個Tomcat的副本,換句話說就是讓這些Tomcat副本擁有自己 的工作目錄但是共享Tomcat的代碼。
但是此時你肯定還有一個疑問就是,IDEA如何修改CATALINA_BASE的內(nèi)容的呢?
我在網(wǎng)上查了相關(guān)資料,還不是特別確定,有一部分猜測,后期如果明白的話會馬上補充上。
上方箭頭指的是運行啟動與停止的腳本所在位置,
先啟動安裝目錄下的batalina.bat文件,
該文件里面給CATALINA_BASE賦值,部分代碼如下
那么如何將其賦值為C盤下的路徑呢?
我個人理解是Tomcat先查找安裝目錄下文件,確定該文件夾下的文件與IDEA啟動時間不符,所以IDEA沒有修改Tomcat目錄,轉(zhuǎn)而去C盤下的IDEA工程下尋找該配置文件,找到相關(guān)配置文件,然后在此路徑下加載該路徑到CATALINA_BASE的。
如果解釋不正確的,希望大家多多指點。
總結(jié)
以上是生活随笔為你收集整理的(三)IDEA部署Tomcat原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: maven打包指定main函数
- 下一篇: 动态规划6个题目总结比较