這個問題是一個很嚴重的問題,沒有熱部署和有熱部署的開發效率是天差地別的。這個問題還受很多第三方軟件包(Struts,Spring,Hibernate)的限制。本來可以熱部署,加入了第三方的包就不可以了。所以,先說明詳細的軟件環境,和程序配置是非常必要的。
虛擬機:java version "1.5.0_06"
Servlet Engine:Apache Tomcat/5.0.27
Eclipse:3.0.1
Myeclipse:3.8.3
應用程序情況:純正的sertlet+jsp+javabean,數據庫連接使用JDBC-ODBC橋連接Access數據庫。沒有使用任何第三方軟件包,沒有使用Struts,Spring,Hibernate。\WebRoot\WEB-INF\lib下是空的。
配置方法:
ie登陸http://Tomcat所在的服務器IP:8080/ -> 點超連接“Tomcat Administration”-> 輸入用戶名密碼登陸 ->在左側的功能樹中 -> Tomcat Server -> Service(Catalina) -> Host(localhost) -> Context(/要修改的web項目) ->右側新出現的頁面中 ->Reloadable設置為true -> Save按鈕 -> Commit Changes。
然后Tomcat日志顯示:
debugging -- changes saved to conf/server.xml
- Removing web application at context path /test
- Processing Context configuration file URL file:D:\Program Files\Tomcat 5.0\conf\Catalina\localhost\test.xml
- Removing web application at context path /admin
- unregistering logger Catalina:type=Logger,path=/admin,host=localhost
- Processing Context configuration file URL file:D:\Program Files\Tomcat 5.0\conf\Catalina\localhost\admin.xml
- Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
- Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
- Initializing, config='org.apache.webapp.admin.ApplicationResources', returnNull=true
- Removing web application at context path /webdav
- Processing Context configuration file URL file:D:\Program Files\Tomcat 5.0\conf\Catalina\localhost\webdav.xml
- Removing web application at context path /test
- Processing Context configuration file URL file:D:\Program Files\Tomcat 5.0\conf\Catalina\localhost\test.xml
……
這樣,設置就生效了。
開發時,修改.java文件后,調用這個類時日志提示:
- Reloading this Context has started
這是正在重新加載修改后的.class文件。
O了。:)
PS:
如果沒有進行這個設置,修改.java文件后,不拋出異常。系統使用沒有修改的.java文件繼續運行。
不同版本的Tomcat的配置方法是不同的。這里使用的是5.0.27
j2ee開發插件(這里使用Myeclipse),也可能導致熱部署失效。因為插件必須要把編譯好的.class文件從工作空間復制到Tomcat\webapps下的項目里。才能使Tomcat得到需要熱部署的文件。
注意:如果項目中加入了Struts,Hibernate,Spring只類的第三方軟件,可能導致熱部署失效。
posted on 2008-06-12 17:43
藍山 閱讀(7806)
評論(2) 編輯 收藏