修改類不用重啟Tomcat加載整個項目


可以修改類不用重啟Tomcat加載整個項目(手工啟動)
配置reloadable=true(自動重載)
使用Debug模式,前提是僅限於局部修改。(修改類不用重啟--熱加載)

Tomcat輕小,而WebLogic、WebSphere對硬件要求比較高,吃內存、耗CUP。JBoss類更改不會重啟(傳說,我沒用過,不知道!)。

在使用Eclipse+Tomcat開發Java項目的時候常常會碰到這樣的情況,已修改Java文件Tomcat就會自動重啟,接下來就是漫長的等待服務重啟完畢。那其實大多數的Java文件修改是沒有必要重啟服務的,只有一些特定的Java文件,比如說只有重啟服務的時候才會調用的Java代碼才需要重啟服務。

一修改java代碼就重新部署(console有明顯提示),且會話失效,設置服務器為debug模式(debug on server),否則修改不起作用.

什么時候應該redeploy,什么時候應該重啟tomcat。如果項目大,redeploy和重啟tomcat的系統開銷是很大的,經常要等很長時間。

Tomcat運行時動態重載類, 實現重載功能的測試jsp。 當系統中有很多類時,如果開啟了Tomcat的reloadable=true,那么每當相關文件改變時,Tomcat會停止web app並釋放內存,然后重新加載web app.這實在是個耗時的工程. 如果能有只重載某幾個類的功能,將極大的滿足我這個即時調試狂。

1.修改類不重啟Tomcat(不用手動重啟)
首先需要設置server.xml中的Context reloadable="true", true自動重載(不是重啟!), false手動重載。(如果項目在Tomcat中,應該去Tomcat目錄設置。)
Eclipse EE 設置方式,文件設置:server.xml > reloadable="false" 界面設置:Server > Modules > Edit > webapp > Auto reloading enabled > false
開發階段通常都設為true,方便開發,在發布階段應該設置為false,提高應用程序的訪問速度。可以選擇把其他不相關的項目先從webapps移出,這樣tomcat加載的項目就少了,相應也就快了。

2.修改類不重啟Tomcat有兩種方式:熱部署、熱加載
熱部署:容器狀態在運行時重新部署整個項目。這種情況下一般整個內存會清空,重新加載,這種方式可能會造成sessin丟失等情況。tomcat 6確實可以熱部署了,而且會話也沒丟.
熱加載:最好是在調試過程中使用,免得整個項目加載,Debug模式支持熱加載。容器狀態在運行時重新加載改變編譯后的類。在這種情況下內存不會清空,sessin不會丟失,但容易造成內存溢出,或者找不到方法。

一般改變類的結構和模型就會有異常,在已經有的變量和方法中改變是不會出問題的(Eclipse、MyEclipse8、JBuilder、IntelliJ IDEA…)。

3.自動編譯JSP
build Automatically

修改Tomcat源代碼實現realoadable!不推薦~


免責聲明!

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



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