開發JSP/Servlet的Web Application時,有些設定的異動,例如修改web.xml或新增WEB-INF/classes底下的類別,需要重新啟動Context,才能讓新設定或程式可以運作。
在$CATALINA_HOME/conf/server.xml中,我們可以設定Context的reloadable="true",在此設定下,Servlet的class檔案更新時,Tomcat就會自動偵測到,並且執行Reload。只是在許多情況我們並無法預期Tomcat會幫我們完成Context Reload動作,當Reload發生時,我們可以看到Tomcat輸出如下訊息:
Aug 7, 2010 2:12:36 AM org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started
舉例來說,當一個編譯好的Servlet class檔更新時,同時又有一個對此Servlet的網頁存取動作發生,這時候就會造成Reload過程發生錯誤。
想要由開發者自行控制Context Reload,可以使用Tomcat提供的manager,剛安裝好的Tomcat需要經過設定,才能獲得此功能,以下使用Tomcat6的設定為例說明。
編輯manager.xml,加入Context設定。
$CATALINA_HOME\conf\Catalina\localhost\manager.xml
編輯tomcat-users.xml,加入role/user設定。
$CATALINA_HOME\conf\tomcat-users.xml
打開 http://HOSTNAME:PORT/manager/html ,輸入剛才設定的使用者名稱及密碼,登入後可以看到Applications列表,並提供 Start Stop Reload Undeploy 四種動作。
接著,我們可以加入Tomcat Reload的Ant Target到專案的buile.xml設定中,我們可以讓一系列的發佈流程自動化,例如編譯、測試、佈署以及Tomcat Context Reload。
在設定中指定reload target對應類別org.apache.catalina.ant.ReloadTask,因此 ${CATALINA_HOME}/lib/catalina-ant.jar 也必須加入CLASSPATH。
訂閱:
張貼留言 (Atom)
-
▼
2010
(72)
-
▼
8月
(15)
- HTC Desire Android 2.2 release! 官方已開放台灣地區更新
- the plurk-robodog project 噗浪機器狗專案
- 快快樂樂學Groovy使用jPlurk發送Plurk短訊
- [Note] Android Development with HTC Phone + Ubuntu...
- 快快樂樂學Groovy使用GMail發送電子郵件
- PHP網站快速開發筆記 - 使用Codeigniter (一)
- 使用 PEAR::Text_Wiki_Mediawiki 將Mediawiki標記文字轉為HTML代碼
- 快快樂樂學Groovy繪製圓餅圖 Pie Chart using Groovlet & jFreeC...
- 使用Apache Ant控制Tomcat6 Context Reload
- Blogger文章編輯器的HTML編碼工具(HTML Encode Button) Firefox ...
- Groovy 1.7 GroovyServer Pages的Servlet設定
- 技嘉過保固主機板免費換電容
- Windows環境執行Groovy/Groovlet/GSP的編碼問題
- 解決Tomcat 6.0的This is very likely to create a memor...
- 讓Eclipse支援Grails專案開發
-
▼
8月
(15)
沒有留言:
張貼留言