關於不重啟Tomcat自動載入改變的class檔案

2022-09-16 17:18:11 字數 1696 閱讀 3387

"" docbase="

filemanager

" reloadable="

true

">

"/filemanager

" docbase="

filemanager

" reloadable="

true

">

第乙個context是為了ip+埠直接指向filemanger這個專案。 

path代表的是url入口,例如第乙個代表localhost:8080,第二個則代表localhost:8080/filemanger。

這裡的path+docbase的配置就表示了ip+埠或者ip+埠+/專案名稱都可以指向你的專案。

"" docbase="

filemanager

" reloadable="

true

">

web-inf/web.xml

"/filemanager

" docbase="

filemanager

" reloadable="

true

">

web-inf/web.xml

但是這樣並沒有效果,web.xml變了後,tomcat並沒有reload,原因暫時不知道。

<?xml version='

1.0' encoding='

utf-8

'?>

"true

">

web-inf/web.xml

$/conf/web.xml

此時,server.xml的配置如下:

"" docbase="

filemanager

" reloadable="

true

">

因為如果在server.xml裡配置了context,就不會載入專案中的meta-inf中的context.xml

我在這裡的想法是通過server.xml裡這樣配置,指定ip+埠可以直接指向我的那個專案,然後再在專案的meta-inf中配置context.xml實現監控web.xml。

分析下原因,在第二部分提到了再server.xml裡直接加watchedresource無效,所以其實按照第三部分的設定,ip+埠只是指向了filemanger那個資料夾,並沒有監控web.xml的變化。(原因依然未知,為啥在那裡設定watchedresource無效?

將filemanger資料夾下的專案拷貝到root資料夾下,server.xml配置檔案不用加額外配置,在兩個資料夾下中的meta-inf中都加入內容如第三部分的context.xml檔案,這樣就可以都監控到class檔案變化,也可以監控web.xml變化了。但是這樣的話軟體更新就必須要改兩處地方,更好的解決方案也沒有想到,因為對tomcat的配置也不是特別清楚。

這樣不重啟tomcat自動載入class檔案,有時候控制台會報錯,內容如下:

我用了dbcp來管理連線,每次都是那塊報這個錯誤,但是好像並沒有影響軟體的使用,等那些沒有關閉的執行緒都關閉後,就不會繼續報錯了。如果不想報錯的話,只能重啟tomcat,把reloadable設定成false。

不重啟 清空tomcat日誌

root localhost logs du h catalina.out 檢視檔案大小 17m catalina.out root localhost logs catalina.out重定向清空檔案 root localhost logs du h catalina.out 檢視檔案大小 0 c...

Tomcat自動重啟指令碼

我做過的tomcat自動重啟其實是讓windows系統的任務計畫程式來實現觸發的,先讓tomcat自動關閉,然後讓tomcat自動啟動,這樣就是自動重啟了。一 編寫指令碼 指令碼如下 自動關閉指令碼 tomcat stop.bat echo off echo 執行開始時間 date t time t...

關於Tomcat自動載入更新class的小技巧

大家都知道在 tomcat 的server.xml或者 tomcat conf catalina localhost 工程.xml檔案中里context標籤內 在小專案中將reloadable屬性設成true或許並沒有什麼感覺,但是在大專案中尤其是用到框架的專案那每次改動class都將會自動部署重新...