使用WAR文件
创建WAR文件的过程实际上与创建JAR文件的过程完全相同:使用jar命令。Jar的命令行界面,甚至程序名,都是基于Unix的tar命令(TAR命令最早起源于磁带归档[Tape Archiver],但该命令现在更多用于打包文件,以便在Internet上传递,而不是用于磁带命令。创建归档文件的常见使用模式为
$ jar cvf jar-file.jar dir [...]
C表示让您创建一个归档文件。V可选;表示执行该命令需要得到一个详细(verbose) 列表。f是必需的,表示紧随字母(c、v、f...)之后的参数是输出文件明。随后所有的 文件名参数是输人文件名,而且可以是文件或目录。目录是递归归档的。因此,假定您 已正确架设了Web应用程序并将其彻底放在一个叫做的目录下,就可以完成 下列操作了:
$ cd ~/my-webapp $ jar cvf ~/my-webapp.war .
在Windows上,您可以这样处理:
C:\> cd c:\myhome\my-webapp C:\myhome\my-webapp> jar cvf c:\temp\my-webapp.war.
结尾的小圆点(.)非常重要,它意味着"打包当前目录的内容"。还要注意,尽管它是一个JAR文件,笔者还是称之为WAR文件,以表明它包含一个完整的Web应用程序。这是servlet规范推荐的做法。一旦您执行了该命令,您将看到下列类似的输出信息:
added manifest adding: WEB-INF/(in= 0) (out=0)(stored 0%) adding;WEB-INF/web.xml(in=4566)(out= 1410)(deflated 69%) adding: WEB-INF/classes/(in=0)(out=0}(stored 0%) adding: WEB-INF/classes/ListParams.class{in=1387) (out=756)(deflated 45%) adding: WEB-INF/classes/ListParametersServlet.class(in = 1510)(out= 84l){deflated 44%) adding: index.jsp(in = 681)(out=439)(deflated 35%) adding: /upload/image/course/tomcat/(in=0)(out=0)(stored 0%) adding: /upload/image/course/tomcat/logo.png(in=0)(out=0)(stored 0%) adding:build.xml(in=263)(out= 203)(deflated 22%) adding: ListParametersForm.html(in=394)(out=161)(deflated 59%) adding: play.html(in=1967) (out=527)(defiated 73%)
如果使用了Tomcat的启动后热部署功能(通过在CATALINA_HOME/conf/server.xml的 Host元素上设置autoDeploy="true"实现,如果不给它赋值,则默认为true),您就可 以复制这一新的WAR文件到Tomcat的Web应用程序目录中,以便实现部署。依配置而定 (默认情况下,在部署新的Web应用程序时,您不需重启Tomcat),您可能还需要重启 Tomcat。现在,您已可以使用包含在WAR文件中的Web应用程序了。
如果您想节省点时间,并勇气十足,那么可以将JAR的输出文件设置为部署目录,从而省略复制操作:
$ jar cvf /opt/tomcat/webapps/my-webapp.war.