The Jakarta Project
      The Apache Jakarta Tomcat Servlet/JSP Container

链接

用户指南

参考

开发 Tomcat

The Apache Jakarta Tomcat 5 Servlet/JSP Container

Deployer HOW-TO

Printer Friendly Version
print-friendly
版本
目录

简介
上下文XML描述符(Context XML descriptors )
在Tomcat启动时部署(Deploying on Tomcat startup )
在运行的Tomcat服务器上部署(Deploying on running Tomcat server )
使用客户部署包进行部署(Deploying using the Client Deployer Package )

简介

Deployer(部署者),顾名思义,就是用来部署和反部署程序到Tomcat服务器上去,它通过静态的方式(服务器启动之前,程序已经被设置好了)或者动态的方式(与Tomcat一道操作已经被部署的程序)来部署。

上下文描述符

一个上下文XML描述符是XML数据的片段,这个XML数据包含一个合法的上下文元素(Context element),通常在主要服务器配置文件(conf/server.xml)中可以发现这个元素,(Context XML descriptor)允许Tomcat里各种各样的管理工具可以方便自动地操作web应用程序。对于一个给定的(宿)主机,上下文描述符位于$CATALINA_HOME/conf/[enginename]/[hostname]/foo.xml。注意,如果文件名称和webapp名称没有连接上,Tomcat就会产生一个和webapp相映射的上下文描述符(Context descriptor)。

上下文描述符允许定义一个上下文的所有方面和配置参量(configuration parameters),比如namign 资源和session管理员配置。必须注意,在上下文元素里特定的docBase,既可以指.WAR文件本身,又可以指在WAR 文件扩展时产生的目录。

在Tomcat启动时部署(Deploying on Tomcat startup )

如果主机的"deployOnStartup"属性是正确的,在主机appBase里的webapps(web程序)就会被部署,部署过程是如下:

  • 首先部署上下文XML声明。
  • 再部署没有被Context XML声明索引(referenced)到的expanded web程序;如果扩展网络应用程序还有相关的.WAR文件,并且比这个扩展网络应用程序还新,那么这个被扩展的目录将会被删除,webapp会被重新从.WAR部署。
  • 部署WAR文件
对于每个被部署过的网络程序,都会产生一个相映射的上下文XML描述符,除非这个描述符已经存在。

在运行的Tomcat服务器上部署(Deploying on a running Tomcat server )

如果宿主机(host)上"autoDeploy"属性是true,宿主机会根据需要动态地(dynamically)部署和更新web程序。宿主机要先进行背景处理,这样才能使缺省自动再装载(automatic reloading)运作。

这包括:

  • 部署被复制到主机appBase上的WARs。
  • 部署被复制到主机appBase上的扩展网络应用程序。
  • 重新部署在WAR被更新时已被部署过的网络程序:删除被扩展的网络应用程序,再把WAR扩展一遍。如果主机被配置为不扩展WAR,那么上面这个过程就不会发生,这种情况下只是简单地重新部署webapp。
  • 如果/WEB-INF/web.xml文件被更新,要重新部署(redeployment)网络应用程序。
  • 如果已经被部署过的网络应用程序里的上下文XML文件被更新,要重新部署网络应用程序。
  • 如果一个context XML文件(这个文件名称与先前被部署过的应用程序的 context path 相映射)被加入到$CATALINA_HOME/conf/[enginename]/[hostname]/ 文件夹中,要重新部署网络应用程序。
注意:重新装载的网络应用程序也可以在载入器(loader)里被配置,这样一来,被装载的类(classes)里的变动都可以被追踪到。

使用客户部署包进行部署(Deploying using the Client Deployer Package )

客户部署者(deployer)是一个软件包,可以用它来把网络应用程序确认(validate), 编译(compile), 和部署(deploy)到生产(production)或开发(development)服务器上。注意这个特点使用了Tomcat manager 来自动部署。

部署者(deployer)包括Catalina manager Ant任务(tasks),在部署之前编译JSP用的Jasper page编译器,以及一个来确认webapp的部署描述符的任务(task)。Validator任务(class org.apache.catalina.ant.ValidatorTask)只允许一个参量:那就是扩展网络应用程序的基础路径(base path)。

部署者使用一种未包装的网络应用程序作为输入(参见deployer使用的属性列单)。如果要programatically部署网络程序的话,要通过把Context configuration XML文件包含在/META-INF/context.xml 里,把Tomcat具体部署配置包括进去。

部署者软件包包括一个可以迅速被使用的Ant script, 和以下目标:

  • 编译(compile)(默认default):编译并确认网络应用程序。这个目标可以单独使用,并不需要一个运行的Tomcat服务器。因为由Jasper产生的代码依赖于它的运行组件,这个被编译过的程序只能运行在相关的Tomcat 5.0.x发行版服务器上, 不能保证能在其他发行版服务器上运行。还须注意,这个目标还会自动 编译位于 /WEB-INF/classes 文件夹里的Java 源文件。
  • 部署(deploy):把网络程序(编译过的或未编译过的)部署到Tomcat服务器上。
  • 反部署(undeploy):反部署网络应用程序。  undeploy
  • 启动(start): 启动一个web程序。
  • 重新装载(reload):重新装载web应用程序。
  • 停止(stop):停止运行web应用程序。
以下的这些属性可以被指定为系统属性,或者由位于deployer包裹的根部(root)文件夹里的deployer.properties文件来指定。
  • 构造(build):build文件夹可以以默认的形式${build}/webapp${path}使用。当编译(compile)目标执行完之后,WAR程序就被放置在${build}/webapp${path}.war。  ${build}/webapp${path}  ${build}/webapp${path}.war
  • 网络程序(webapp):这个文件夹包含将被编译和将被确认的扩展网络应用程序。这个文件夹默认为myapp
  • 路径(path):被部署的网络程序的上下文路径,默认名称是/myapp
  • 统一资源定位器(url):绝对URL指向运行的Tomcat 服务器上的管理员(manager) web程序,它用于部署和反部署web程序。默认的方式是,部署者会试图去存取运行在局部主机http://localhost:8080/manager 上的Tomcat实例(instance)。
  • 用户名称(username):用于连接上Tomcat管理员(manager)的用户名称
  • 密码(password):用于连接上Tomcat管理员(manager)的密码


Copyright © 1999-2003, Apache Software Foundation