1. 程式人生 > >設定Tomcat不自動部署

設定Tomcat不自動部署

可以修改類不用重啟Tomcat載入整個專案(手工啟動)

1.配置reloadable=true(自動過載)

2.使用Debug模式,前提是僅限於區域性修改。(修改類不用重啟--熱載入)

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

一修改java程式碼就重新部署(console有明顯提示),且會話失效,設定伺服器為debug模式(debug _disibledevent=>Tomcat

會停止webapp並釋放記憶體,然後重新載入web app.這實在是個耗時的工程.如果能有隻過載某幾個類的功能,將極大的滿足我這個即時除錯狂。

1.修改類不重啟Tomcat(不用手動重啟)

首先需要設定server.xml中的Context reloadable="true", true自動過載(不是重啟!),false手動過載。(如果專案在Tomcat中,應該去Tomcat目錄設定。)

EclipseEE設定方式,檔案設定:server.xml > reloadable="false"介面設定:Server > Modules > Edit > webapp > Auto reloading enabled> false

開發階段通常都設為true,方便開發,在釋出階段應該設定為false,提高應用程式的訪問速度。可以選擇把其他不相關的專案先從webapps移出,這樣tomcat載入的專案就少了,相應也就快了。

2.修改類不重啟Tomcat有兩種方式:熱部署、熱載入

熱部署:容器狀態在執行時重新部署整個專案。這種情況下一般整個記憶體會清空,重新載入,這種方式可能會造成sessin丟失等情況。tomcat 6確實可以熱部署了,而且會話也沒丟.

熱載入:最好是在除錯過程中使用,免得整個專案載入,Debug模式支援熱載入。容器狀態在執行時重新載入改變編譯後的類。在這種情況下記憶體不會清空,sessin不會丟失,但容易造成記憶體溢位

,或者找不到方法。

一般改變類的結構和模型就會有異常,在已經有的變數和方法中改變是不會出問題的(EclipseMyEclipse8JBuilderIntelliJ IDEA…)

3.自動編譯JSP

build Automatically

修改Tomcat原始碼實現realoadable!不推薦

具體操作:

修改Java程式碼不讓服務重啟的方法有兩個:

1、修改Tomcat的配置檔案(tomcat-5.5.20\conf\Catalina\localhost目錄下)

在配置中加入 reloadable="false"

<Contextpath="/"

reloadable="false"

docBase="F:\workspace\shpm3\shpm3-web"

workDir="F:\workspace\shpm3\work"/>

2、也可以通過Eclipse上設定實現上述配置檔案的修改

Eclipse的工程名右鍵: properties->Tomcat->General->Make this context asreloadable(reloadable="true")不要選中

Eclipse的工程名右鍵:Tomcat project->Update Context Definition