tomcat 快取導致的嚴重問題
- 2019 年 10 月 5 日
- 筆記
今天在部署jsp程式碼的時候,打成war包丟到線上伺服器的tomcat容器裡面。結果死活不出結果。
諮詢了下同事,說是tomcat的快取的問題。
清理快取方法如下:
step1 停掉tomcat,進入tomcat的主目錄。
step2 刪掉work目錄下全部文件(work目錄不要刪!)。
step3 刪掉temp目錄下的所有文件。
step4 再次啟動tomcat即可
下面是摘自其他人部落格的:
tomcat有一個work目錄,裡面存放了頁面的快取,訪問的jsp都會編譯(從 work里進入Catalina後的如localhost站點文件夾下的項目,我們可以看到那些jsp頁面會被編譯成應該是servlet文件,下次再來 訪問時,就直接運行servlet類就可以向客戶端反應響應頁面了,所以有的部落格說第一次訪問時會比較慢,是因為新發布上去的頁面在第一個人訪問時,會先 編譯成servlet文件,所以慢了,一旦編譯好,那麼除非jsp頁面修改,不然下次訪問直接運行servlet就可以響應用戶,所以快),編譯後的文件都會存儲在work目錄下。而tomcat顯示的目錄,都會從這個快取里找編譯後的jsp對應的class文件。所以當清空了work目錄後,該過程將會從新來過。 有的時候會遇到一個問題,就是修改後的頁面在tomcat運行的時候顯示不了修改後的痕迹。這個時候刪除work目錄下對應的項目文件夾,重新啟動tomcat就可以了。
還可以修改server.xml ,添加個reloadable="true",例如下面這種寫法:
<Context path="/" docBase="/home/website/web1" reloadable="true">
然後重啟tomcat即可。