Tomcat用户指南_deployer-howto

Tomcat Web应用部署

目录

·   简介

·   安装

·   Contexts片言只语

·   Tomcat启动部署

·   Tomcat运行中部署

·   使用Tomcat管理器部署

·   使用客户端部署包部署

 

简介

部署是把web应用安装到Tomcat服务器上的流程的术语(要么事第三方WAR或您自己定制的web应用)。

Web应用部署就Tomcat服务器而言可以用多种方法来完成。

·   静态部署; web应用在Tomcat启动之前设置the web application is setup before Tomcat is started

·   动态部署; 通过直接操作已经部署的web应用(依赖于自动部署特性)或使用Tomcat管理器web应用远程操作

Tomcat 管理器 是一个交互式(通过HTML GUI)或程序式(通过基于URL的API)的web应用,它可以部署和管理web应用。

依靠管理器web应用,有许多方法可以执行应用的部署。Apache Tomcat提供了Ant构建工具的任务。Apache Tomcat Maven Plugin 工程提供了和Apache Maven集成的方法。还有一种工具叫做客户端部署器,它可以通过命令行使用,并且提供了额外的功能,例如编译、验证、打包web应用。

 

安装

对于静态部署是不需要安装的,因为静态部署是直接可以使用的。使用Tomcat Manager部署某个功能也不需要安装,尽管Tomcat Manager手册也指出需要一些配置。无论如何,如果您要使用Tomcat客户端部署器(TCD)来部署应用,还是需要安装的。

TCD在Tomcat核心发布包中是没有的,它必须单独从下载页面下载。下载的标签一般是apache-tomcat-6.0.x-deployer

要使用TCD,必须先安装Apache Ant1.6.2+和Java。您的开发环境中需要定义ANT_HOME环境变量,它指向Ant安装的根目录。已经JAVA_HOME环境变量,它指向Java安装的位置。您必须确保Ant的ant命令可用,以及Java的javac命令可以从命令行运行。

1.    下载TCD的发布包

2.    TCD的包不需要解压到Tomcat的安装目录,它可以解压到任何位置。

3.    阅读《使用Tomcat 客户端部署器 》

 

Contexts简介

当谈论部署web应用时,必须知道context的概念。Context对于Tomcat来说就是一个web应用。

配置Tomcat的Context需使用Context描述符。Context描述符就是一个简单的XML文件,它包含了TomcatContext相应的配置,例如资源或session管理器配置。在Tomcat的早期版本中,Context描述符配置经常保存在Tomcat的主配置文件server.xml中,现在已经不推荐这么做了(尽管这么做还是可以奏效的)。

Context 描述符不仅帮助Tomcat理解如何配置Contexts,还帮助理解如何配置其它的工具,例如Tomcat Manager和TCD经常使用Context描述符来合理地执行它们的角色。

Context 描述符的位置为:

1.    $CATALINA_BASE/conf/[enginename]/[hostname]/[webappname].xml

2.    $CATALINA_BASE/webapps/[webappname]/META-INF/context.xml

(1)中的文件名称为 [webappname].xml 但 (2)中的文件名为context.xml。 如果没有提供Context描述符,Tomcat会使用缺省值配置Context。

 

重启Tomcat的部署

如果您不想使用Tomcat Manager, 或者TCD, 那么您需要静态的部署web应用,并需重启Tomcat。这种部署方式的部署位置叫做appBase,这对每个主机的独立的。您既可以拷贝一份解压的web应用,也可以拷贝压缩的web应用资源.WAR文件到这个位置。

Host里appBase指定的位置的web应用只有在Host的deployOnStartup属性是true的时候才会在启动时部署到Tomcat中。下面就是这种部署方式在Tomcat启动时的执行顺序:

1.    任何Context描述符都将最先被部署。

2.    然后部署的是解压的并且没有被Context描述符引用的web应用。 如果有关联的.WAR文件在appBase目录,并且它比解压的web应用版本更新,那么已经解压的应用会被移除然后重新从.WAR文件部署。

3.    .WAR 最后部署。

注意每个部署的web应用将会创建一个Context描述符,除非原来已经存在了。

 

在运行中的Tomcat服务器上部署

在运行着的Tomcat服务器上部署web应用也是可以的。

如果Host的autoDeply属性为true,主机会尝试动态部署和更新web应用,如果需要,例如如果一个新的.WAR被放置到了appBase所指的位置。为了使动态部署能够工作,主机必须能执行后台处理,这在Tomcat里是缺省配置。

把autoDeploy设成true再运行Tomcat,从而可以完成下面的功能:

·   把.WAR文件拷贝到Host 的appBase目录实现部署。

·   把解压的web应用拷贝到Host的appBase目录实现部署。

·   当提供了一个更新的.WAR文件时,重新部署web应用。在这种情况下,已经解压的web应用会被移除,然后重新解压.WAR文件。注意,如果Host中的unpackWARs属性为false,.WAR文件就不会被解压,在这种情况下web应用仅仅会作为一个压缩的包重新部署。

·   当web应用的/WEB-INF/web.xml(或者任何作为监控资源的资源)更新后重新部署应用。

·   当已部署的web应用的Context描述文件更新后,重新部署应用。

·   当Context描述符文件(和前一个部署的web应用的Context路径对应的文件名)加入到$CATALINA_BASE/conf/[enginename]/[hostname]/目录后,重新部署应用。

·   当文档根目录(docBase)被删除后,取消部署web应用。注意在windows系统中,假定anti-locking特性是打开的(参考Context配置),否则无法再一个运行的web应用中删除这些资源。

注意,web应用的重新加载也可以在加载器中配置,在这种情况下所有的已加载的class的修改都会被跟踪。

 

使用Tomcat Manager部署

Tomcat Manager在它自己的手册页中描述。

 

使用客户端部署器包

最后,部署web应用也可以通过Tomcat客户端部署器实现。这个包可用来验证、编译、压缩成.WAR和把web应用部署成生产态或开发Tomcat服务器。需要注意的是,这个特性使用了Tomcat Manager并且Tomcat服务器必须运行着。

要使用TCD,我们假定用户是熟悉Apache Ant的。 Apache Ant是一个脚本构建工具。TCD是在打包前用一个构建脚本来使用的。只需要了解Ant的最基本的用法就可以使用TCD了(如何安装在本页手册前面描述描述过了,需要熟悉操作系统的命令行和配置环境变量)。

TCD包括一些Ant任务,它们是Jasper页面编译器,用于在部署前编译JSP页面,以及验证web应用Context描述符。验证器任务(org.apache.catalina.ant.ValidatorTask)只有一个参数:web应用的解压根路径。

TCD使用解压后的web应用作为输入(参考下面使用的属性列表)。使用部署器由程序自动部署的web应用在/META-INF/context.xml中包含了Context描述符。

TCD包含了直接可用的Ant脚本,包含下面的targets:

·   compile (default): 编译和验证web应用。它可以单独使用,不需要运行Tomcat服务器。编译过的应用智能在Tomcat6.0.x版本上运行,不能确保在其它Tomcat版本上也能运行, 因为Jasper产生的代码依赖于运行时组件。同时还需注意,这个target还会自动编译所有放在/WEB-INF/classes文件夹下的所有源代码文件。

·   deploy: 把web应用(编译或不编译)部署到Tomcat服务器上。

·   undeploy: 取消部署web应用。

·   start: 启动web应用

·   reload: 重新加载web应用

·   stop: 停止web应用

为使部署可配置,在TCD安装的根目录下创建deployer.properties文件。在该文件中,每行添加下面的name=value的键值对:

另外,您需要确保创建一个Tomcat Manager使用的用户(用于TCD),否则TCD无法在Tomcat Manager上鉴权,部署就会失败。如何执行该步骤,请参考Tomcat Manager的页面。

·   build: 将要使用的构建文件夹,缺省情况下为${build}/webapp/${path}。在compile target执行完成的时候,web应用的WAR文件会放在${build}/webapp/${path}.war。

·   webapp: 包含解压后的web应用,它将把编译和验证。缺省情况下该目录是myapp。

·   path: 部署后的web应用的context path,缺省为/myapp。

·   url: 运行着的Tomcat服务其中的Tomcat manager应用的绝对URL,它用于部署和取消部署web应用。缺省情况下,部署器会访问运行在localhost的Tomcat实例,缺省值为http://localhost:8080/manager。

·   username: Tomcat Manager用户名(用户名需要有manager-script角色)

·   password: Tomcat Manager 密码

你可能感兴趣的:(tomcat用户指南翻译,Tomcat,web,web.xml)