第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 和几个发布包之间的主要不同之处。
第1段. 起式:准备Struts 开发
引子
在去年, Struts 框架的流行简单到了可怕的增长程度。自从Struts 1.1 于2003年6月发布以来,Struts 已经成为开发复杂JSP Web应用最流行的框架了。Struts的用户邮件列表非常繁忙,通常每天有70条消息。
虽然很流行,解决如何进行Struts 开发入门的问题仍然是一个公共的话题。这一段中的招式应该能够帮助你的Struts开发能够起步。
很多优秀的商业工具也构建在Struts之上,这里我们主要关注的还是开源和免费的工具和框架 (如同 "免费啤酒(free beer)")。通过对免费工具的关注,给予开发者更多鼓励,如果他们想要使用它们的时候尽管进行试验。
第1.1式. 下载Struts
问题
你想要开始使用Struts进行应用开发。
动作分解
从http://struts.apache.org/acquiring.html下载Struts的二进制代码或者源代码,并且部署示例应用到你的Web容器。
招式变化
对于Struts新手开发者的一个通用问题是要使用哪一个发布版本。如果没问题,任何新建的Struts项目都应该使用最新的有效版本。在本书写作时,Struts 1.2.4 (本书称为Struts 1.2) 刚刚完成GA (General Availability)阶段。
|
对于寻求最新和最强Struts特征以获取经验的开发者来说, Struts 的Nightly Build 将提供Struts 1.3的一窥。 |
你将发现拥有二进制代码和源代码分发包是有用的。binary distribution 包括Struts JAR 和相关依赖的JAR。换言之,源代码distribution将包含Struts 框架本身的源代码,以及Struts 标签库的Java代码。同样重要的是, source distribution 包括所有提供的示例应用的Java 代码,部署描述符, HTML 页面,和JSP 页面。
|
这些distributions 的实际内容将依赖于你是否获取最新的Release Build 或者Struts Nightly Build。 |
Struts 1.2 的Release Build 的binary distribution 包含一个基本的README文件,一个安装文档,以及发布说明。lib文件夹包含Struts JAR 文件,以及来自于Jakarta Commons 项目的依赖JAR 文件。contrib文件夹包含没有视为Struts核心部分的对Struts分发包的贡献。特别地,这个文件夹还包含Struts-EL的JAR 文件和示例web 应用。Struts-EL 使你可以在Struts标签中使用JSTL (JSP 标准标签库) 风格的表达式语言。它包括必要的JSTL 标签库。
Struts 1.2 Release Build 的source distribution 包括Struts 框架的源代码,以及示例应用的源代码和web 资源。另外,contrib文件夹还包括Struts社区贡献对contribution的名单,当前没有成为Struts核心而将来可能成为的源代码。一些特定的贡献包括:
Struts-EL
Struts标签的JSTL 表达示语言支持。
Struts-Faces
支持Struts应用和JavaServer Faces技术进行集成的框架层。
Scaffold
一套帮助将你的数据层(模型)和Struts集成的基类和工具类。
一旦你下载了源代码和二进制distribution,你就可以部署Struts中包含的示例应用,这个问题参见第1.2式。
参见
第1.2式将描述如何部署Struts distribution中包含的Struts 示例应用。
如果你完全是一个Struts的新手,你可能需要首先看看Chuck Cavaness 的Programming Jakarta Struts一书(O'Reilly)。其他信息可以直接访问Struts 主页http://struts.apache.org.