Tomcat Web Application Deployment

Table of Contents

Introduction

部署是用于将Web应用程序(第三方WAR或您自己的自定义Web应用程序)安装到Tomcat服务器的过程的术语.

Web应用程序部署可以在Tomcat服务器中以多种方式完成.

  • 静态地 在启动Tomcat之前先设置Web应用程序
  • 动态地 通过直接操作已经部署的Web应用程序(依靠自动部署功能)或通过使用Tomcat Manager Web应用程序远程

Tomcat Manager是一个Web应用程序,可以交互使用(通过HTML GUI)或以编程方式(通过基于URL的API)来部署和管理Web应用程序.

有多种依赖于Manager Web应用程序的执行部署的方法. Apache Tomcat提供了用于Apache Ant构建工具的任务. Apache Tomcat Maven插件项目提供了与Apache Maven的集成. 还有一个名为Client Deployer的工具,可以从命令行使用它,并提供其他功能,例如编译和验证Web应用程序以及将Web应用程序打包到Web应用程序资源(WAR)文件中.

Installation

静态部署Web应用程序不需要安装,因为Tomcat是开箱即用的. 尽管需要某些配置(如Tomcat Manager手册中所述),但使用Tomcat Manager进行部署功能也不需要进行任何安装. 但是,如果您想使用Tomcat Client Deployer(TCD),则需要进行安装.

TCD没有与Tomcat核心发行版打包在一起,因此必须从"下载"区域单独下载. . 该下载通常标有 .

TCD具有Apache Ant 1.6.2+和Java安装的先决条件. 您的环境应定义一个指向Ant安装根目录的ANT_HOME环境值,以及一个指向Java安装的JAVA_HOME值. 此外,您应确保Ant的ant命令,并且Java javac编译器命令从操作系统提供的命令外壳运行.

  1. 下载TCD发行版
  2. TCD软件包不需要解压缩到任何现有的Tomcat安装中,可以解压缩到任何位置.
  3. 阅读使用Tomcat客户端部署程序

A word on Contexts

is required to be understood. 在谈论Web应用程序的部署时,需要理解的概念. 上下文是Tomcat所谓的Web应用程序.

is required. 为了在Tomcat中配置上下文,需要 . 上下文描述符只是一个XML文件,其中包含与Tomcat相关的Context配置,例如命名资源或会话管理器配置. but this is now discouraged (although it currently still works). 在早期版本的Tomcat中,上下文描述符配置的内容通常存储在Tomcat的主要配置文件但现在不建议这样做(尽管目前仍然可以使用).

上下文描述符不仅帮助Tomcat知道如何配置上下文,而且其他工具(例如Tomcat Manager和TCD)经常使用这些上下文描述符来正确执行其角色.

上下文描述符的位置为:

  1. $CATALINA_BASE/conf/[enginename]/[hostname]/[webappname].xml
  2. $CATALINA_BASE/webapps/[webappname]/META-INF/context.xml

(1)中的文件名为[webappname] .xml,但(2)中的文件命名为context.xml. 如果未为上下文提供上下文描述符,则Tomcat使用默认值配置上下文.

Deployment on Tomcat startup

如果您对使用Tomcat Manager或TCD不感兴趣,则需要将Web应用程序静态部署到Tomcat,然后再启动Tomcat. 将Web应用程序部署到这种部署类型的位置称为appBase ,它是按主机指定的. , ie non-compressed, to this location, or a compressed web application resource .WAR file. 您可以将所谓的 (即未压缩的复制到此位置,也可以将压缩的Web应用程序资源.WAR文件复制到该位置.

仅当主机的deployOnStartup属性为" true"时,才会在Tomcat启动时部署由主机(默认主机为" localhost") appBase属性(默认appBase为" $ CATALINA_BASE / webapps")指定的位置中存在的Web应用程序.

在这种情况下,将在Tomcat启动时执行以下部署顺序:

  1. 任何上下文描述符都将首先部署.
  2. 然后将部署未由任何上下文描述符引用的爆炸性Web应用程序. 如果他们在appBase中具有关联的.WAR文件,并且该文件比分解的Web应用程序新,则分解的目录将被删除,并且将从.WAR重新部署Webapp.
  3. .WAR文件将被部署

Deploying on a running Tomcat server

It is possible to deploy web applications to a running Tomcat server.

如果Host autoDeploy属性为" true",则Host将尝试根据需要动态地部署和更新Web应用程序,例如,如果将新的.WAR放入appBase . 为此,主机需要启用后台处理,这是默认配置.

autoDeploy设置为" true",并且运行的Tomcat允许:

  • 将部署到主机appBase的.WAR文件部署.
  • 部署分解后的Web应用程序,将其复制到Host appBase .
  • 当提供新的.WAR时,重新部署已经从.WAR部署的Web应用程序. 在这种情况下,将删除爆炸的Web应用程序,然后再次扩展.WAR. 请注意,如果将主机配置为不会将unpackWARs属性设置为" false"的.WAR爆炸,则不会发生爆炸,在这种情况下,将简单地将Web应用程序重新部署为压缩档案.
  • 如果/WEB-INF/web.xml文件(或定义为WatchedResource的任何其他资源)已更新,则重新加载Web应用程序.
  • 如果更新了从中部署了Web应用程序的上下文描述符文件,则重新部署Web应用程序.
  • 如果更新了Web应用程序使用的全局或每个主机的上下文描述符文件,则重新部署相关Web应用程序.
  • 如果将上下文描述符文件(文件名与先前部署的Web应用程序的上下文路径相对应)添加到$CATALINA_BASE/conf/[enginename]/[hostname]/目录中,则重新部署Web应用程序.
  • 如果删除了Web应用程序的文档库(docBase),则将其取消部署. 请注意,在Windows上,这假定启用了防锁定功能(请参阅上下文配置),否则无法删除正在运行的Web应用程序的资源.

请注意,也可以在加载程序中配置Web应用程序的重新加载,在这种情况下,将跟踪已加载的类以进行更改.

Deploying using the Tomcat Manager

Tomcat管理器包含在其自己的手册页中 .

Deploying using the Client Deployer Package

最后,可以使用Tomcat Client Deployer来实现Web应用程序的部署. 这是一个软件包,可用于验证,编译,压缩为.WAR并将Web应用程序部署到生产或开发Tomcat服务器. 应当注意,此功能使用Tomcat管理器,因此目标Tomcat服务器应正在运行.

假定用户将熟悉使用Apache TCD的Apache Ant. Apache Ant是一个脚本化的构建工具. TCD预先打包了构建脚本以供使用. 只需要对Apache Ant有一定的了解(如本页面前面列出的安装,并且熟悉使用操作系统命令外壳程序和配置环境变量).

TCD包含Ant任务,在部署之前用于JSP编译的Jasper页面编译器,以及用于验证Web应用程序上下文描述符的任务. 验证器任务(类org.apache.catalina.ant.ValidatorTask )仅允许使用一个参数:展开的Web应用程序的基本路径.

TCD使用爆炸的Web应用程序作为输入(请参阅下面使用的属性列表). 通过部署程序以编程方式部署的Web应用程序可能在/META-INF/context.xml包含上下文描述符.

TCD包含一个现成的Ant脚本,其目标如下:

  • compile (默认):编译和验证Web应用程序. 可以独立使用,不需要运行的Tomcat服务器. 编译的应用程序将仅在关联的Tomcat XYZ服务器版本上运行,并且不能保证在另一个Tomcat版本上运行,因为Jasper生成的代码取决于其运行时组件. 还应注意,此目标还将自动编译位于Web应用程序的/WEB-INF/classes文件夹中的任何Java源文件.
  • deploy :将Web应用程序(已编译或未编译)部署到Tomcat服务器.
  • undeploy :取消部署Web应用程序
  • start :启动Web应用程序
  • reload :重新加载Web应用程序
  • stop :停止Web应用程序

为了配置deployer.properties ,请在TCD安装目录根目录中创建一个名为deployer.properties的文件. 在此文件中,每行添加以下名称=值对:

另外,您将需要确保已为目标Tomcat Manager(TCD使用的目标用户)设置了用户,否则TCD将不会通过Tomcat Manager进行身份验证,并且部署将失败. 为此,请参见" Tomcat管理器"页面.

  • build: The build folder used will be, by default, ${build}/webapp/${path} (${build}, by default, points to ${basedir}/build). After the end of the execution of the compile target, the web application .WAR will be located at ${build}/webapp/${path}.war.
  • webapp :包含将被编译和验证的展开的Web应用程序的目录. 默认情况下,该文件夹为myapp .
  • path :Web应用程序的已部署上下文路径,默认为/myapp .
  • url :到正在运行的Tomcat服务器的Tomcat Manager Web应用程序的绝对URL,它将用于部署和取消部署该Web应用程序. 默认情况下,部署者将尝试访问在localhost上运行的Tomcat实例, http://localhost:8080/manager/texthttp://localhost:8080/manager/text .
  • username :Tomcat Manager用户名(用户应具有manager-script角色)
  • password :Tomcat管理器密码.

by  ICOPY.SITE