第1.2式. 部署Struts 示例應用
問題
你需要將Struts所帶的MailReader 示例應用部署到Tomcat中。
動作分解
如果你好沒有安裝和運行Tomcat,你可以從http://jakarta.apache.org/tomcat下載之。這一招假定你使用的是Tomcat 5。首先設置為Struts 和Tomcat設置環境變量,將Struts 示例的WAR文件拷貝到Tomcat,然后啟動Tomcat。

|
如果你是使用Struts 1.2, Struts MailReader 示例應用的WAR 文件名從1.1的struts-example.war改為struts-mailreader.war。 |
在Windows下的相關命令為:
C:\>set STRUTS_HOME=c:\jakarta-struts-1.1
C:\>set CATALINA_HOME=c:\tomcat5
C:\>copy %STRUTS_HOME%\webapps\struts-example.war %CATALINA_HOME%\webapps
1 file(s) copied.
C:\>%CATALINA_HOME%\bin\startup
Using CATALINA_BASE:c:\tomcat5
Using CATALINA_HOME:c:\tomcat5
Using CATALINA_TMPDIR: c:\tomcat5\temp
Using JAVA_HOME:c:\j2sdk1.4.2
所示的最后一個命令,%CATALINA_HOME%\bin\startup,用來啟動Tomcat。在Windows下,你將看到Tomcat 在一個單獨的終端窗口中啟動。在該終端創口中的輸出顯示已部署的應用和Tomcat的狀態相關的信息:
Jun 22, 2004 12:23:34 AM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /struts-example from URL file:c:/tomcat5/webapps/struts-example
Jun 22, 2004 12:23:38 AM org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
Jun 22, 2004 12:23:38 AM org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
Jun 22, 2004 12:23:40 AM org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.webapp.example.AlternateApplicationResources', returnNull=true
Jun 22, 2004 12:23:40 AM org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.webapp.example.ApplicationResources', returnNull=true
Jun 22, 2004 12:23:40 AM org.apache.struts.webapp.example.memory.MemoryDatabasePlugIn init
INFO: Initializing memory database plug in from '/WEB-INF/database.xml'
Jun 22, 2004 12:23:40 AM org.apache.struts.validator.ValidatorPlugIn initResources
INFO: Loading validation rules file from '/WEB-INF/validator-rules.xml'
Jun 22, 2004 12:23:41 AM org.apache.struts.validator.ValidatorPlugIn initResources
INFO: Loading validation rules file from '/WEB-INF/validation.xml'
...
Jun 22, 2004 12:23:44 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on port 80
Jun 22, 2004 12:23:45 AM org.apache.jk.common.ChannelSocket init
INFO: JK2: ajp13 listening on /0.0.0.0:8009
Jun 22, 2004 12:23:45 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=20/50config=c:\tomcat5\conf\jk2.properties
Jun 22, 2004 12:23:45 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 49852 ms
你可以用這些書出來檢查部署的應用和Tomcat 是否成功啟動和運行。在上面的輸出中,你可以看到Tomcat 部署了struts-example.war文件。另外,最后一行表示Tomcat 正在運行以及啟動所花費的時間。
在Unix/Linux平臺上,你可以使用類似的命令:
$ export STRUTS_HOME=/usr/local/jakarta-struts-1.1
$ export CATALINA_HOME=/usr/local/tomcat5
$ cp $STRUTS_HOME/webapps/struts-example.war $CATALINA_HOME/webapps
$ $CATALINA_HOME/bin/startup.sh
Using CATALINA_BASE:/usr/local/tomcat5
Using CATALINA_HOME:/usr/local/tomcat5
Using CATALINA_TMPDIR: /usr/local/tomcat5/temp
Using JAVA_HOME:/usr/local/j2sdk1.4.2
Tomcat 將啟動為一個后臺進程。你可以使用下面的命令來監控Tomcat 的輸出:
$ tail -f $CATALINA_HOME/logs/catalina.out
除了不同操作系統之間文件路徑的不同,輸出將和前面所示的Windows中的輸出一樣。
將你的瀏覽器導航至http://localhost:8080/struts-example。你應該能夠看到下圖中的頁面。(Figure 1-1)
Figure 1-1. Struts 示例應用

招式變化
使用和試驗struts-example web 應用使一個很好的學習Struts的幫助。在你編寫第一個Struts 應用之前,你應該理解struts-example應用使如何工作的。這樣做的最好方式就是部署這個應用。試驗用戶接口和體驗整個程序。你將希望通過文本編輯器和IDE來一邊查看源代碼一邊遍歷整個應用。

|
你將需要下載Struts binary 和source distributions 來部署struts-example。WAR 文件包含在binary distribution中。而源代碼則包括在source distribution中。 |
除了struts-example應用之外,還有一些示例應用用來演示其他Struts 特征,如表Table 1-1所示。
Table 1-1. Struts 1.1 示例應用 |
WAR 文件 |
說明 |
struts-blank.war |
一個樣板Struts 應用 |
struts-documentation.war |
Struts 的用戶指南和標簽庫參考文檔。 |
struts-example.war |
Struts Mail Reader 示例。演示Struts提供的大部分基本核心特征和功能。 |
struts-exercise-taglib.war |
一個練習Struts 標簽庫功能的應用。 |
struts-upload.war |
展示如何使用Struts 來支持文件上傳。 |
struts-validator.war |
演示Struts中Validator 的使用。 |
tiles-documentation.war |
包括Tiles 文檔,示例布局和教程。 |
Struts 1.2 重新組織了示例應用。Table 1-2列出了包含在Struts 1.2 /webapps目錄中的War文件。
Table 1-2. Struts 1.2 示例應用 |
WAR 文件 |
說明 |
struts-blank.war |
一個樣板Struts 應用 |
struts-documentation.war |
Struts 的用戶指南和標簽庫參考文檔。 |
struts-examples.war |
代替了struts-exercise-taglib.war, struts-upload.war, 和struts-validator.war。將標簽庫、Validator示例和結合到一個應用中。 |
struts-mailreader.war |
Struts Mail Reader 示例。演示Struts提供的大部分基本核心特征和功能。 |
tiles-documentation.war |
包括Tiles 文檔,示例布局和教程。 |
參考
第1.1式討論了如何下載Struts 和幾個發布包之間的主要不同之處。