Tomcat9.0官方手册中文版(二):部署

栏目: Java · 发布时间: 7年前

内容简介:部署是指将Web应用程序(第三方WAR或您自己的自定义Web应用程序)安装到Tomcat服务器的过程。Web应用程序部署可以在Tomcat服务器中以多种方式完成。

Introduction

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

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

  • 静态;在Tomcat启动之前设置Web应用程序
  • 动态;通过直接操作已部署的Web应用程序(依赖于 auto-deployment 功能)或使用Tomcat Manager Web应用程序远程访问

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

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

Installation

静态部署Web应用程序不需要安装,因为Tomcat提供了开箱即用的功能。使用Tomcat Manager的部署功能也不需要任何安装,尽管需要进行一些配置,详细说明在下一节。但是,如果您希望使用Tomcat客户端部署程序(TCD),则需要安装。

TCD未与Tomcat核心发行版一起打包,因此必须从“下载”区域单独下载。下载通常是标记的 apache-tomcat-9.0.x-deployer .

TCD需要先安装Apache Ant 1.6.2+和Java。您需要设置指向Ant安装根目录的ANT_HOME环境值,以及指向 Java 安装根目录的JAVA_HOME值。此外,您应该确保Ant的ant命令,以及Java javac编译器命令可以在 shell 中运行。

  1. 下载TCD发行版
  2. 不需要将TCD包提取到任何现有的Tomcat安装中,它可以被提取到任何位置。
  3. Read Using the Tomcat Client Deployer

A word on Contexts

在谈论Web应用程序的部署时, Context这个概念 需要被理解。 Context在Tomcat中被称为Web应用程序。

为了在Tomcat中配置一个Context ,一个 Context Descriptor( Context描述 是必须的。 Context Descriptor 只是一个XML文件,它包含上下文的Tomcat相关配置,例如命名资源或会话管理器配置。在早期版本的Tomcat中,Context Descriptor配置的内容通常存储在Tomcat的主配置文件中 server.xml。 但现在不鼓励这种做法(尽管目前仍然有效)。

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

Context Descriptor 的位置是:

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

(1)中的文件名为[webappname] .xml,但(2)中的文件名为context.xml。如果没有为Context提供Context Descriptor,Tomcat将使用默认值配置Context。

在Tomcat启动时部署

如果您对使用Tomcat Manager或TCD不感兴趣,那么您需要将Web应用程序静态部署到Tomcat,然后启动Tomcat,此类部署的位置称为appBase,它对于每个主机是指定的。你要么复制一个所谓的 exploded web application 到此位置,或压缩的Web应用程序资源.WAR文件。

还有当Host的deployOnStartup属性为“true”时,在Tomcat启动时应用才会部署到appBase指定的位置。

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

  1. 将首先部署任何上下文描述符。
  2. 然后将部署未被任何上下文描述符引用的 exploded web application 。如果他们在appBase中有一个关联的.WAR文件,并且它比 exploded web application 更新,则会删除 exploded web application ,并从.WAR重新部署webapp。
  3. 将部署.WAR文件

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

可以将Web应用程序部署到正在运行的Tomcat服务器。

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

autoDeploy设置为“true”,运行Tomcat允许:

  • 部署.WAR文件复制到主机中appBase.
  • 部署已复制到主机中的 exploded web application .
  • 重新部署已在提供新.WAR时从.WAR部署的Web应用程序。在这种情况下,将删除 exploded web application ,并再次展开.WAR。请注意,如果配置主机以便.WAR不会使用展开,unpackWARs属性设置为“false”,在这种情况下,Web应用程序将简单地重新部署为压缩存档。
  • 如果更新了/WEB-INF/web.xml文件(或定义为WatchedResource的任何其他资源),则重新加载Web应用程序。
  • 如果更新了部署Web应用程序的Context Descriptor文件,则重新部署Web应用程序。
  • 如果更新Web应用程序使用的全局或每主机上下文描述符文件,则重新部署从属Web应用程序。
  • 如果将上下文描述符文件(具有与先前部署的Web应用程序的上下文路径对应的文件名)添加到Web应用程序,则重新部署Web应用程序$CATALINA_BASE/conf/[enginename]/[hostname]/ directory.
  • 如果删除了其文档库(docBase),则取消部署Web应用程序。请注意,在Windows上,这假定启用了反锁定功能(请参阅上下文配置),否则无法删除正在运行的Web应用程序的资源。

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

使用客户端部署程序包进行部署

最后,可以使用Tomcat Client Deployer实现Web应用程序的部署。这是一个包,可用于验证,编译,压缩到.WAR,以及将Web应用程序部署到生产或开发Tomcat服务器。应该注意,此功能使用Tomcat Manager,因此目标Tomcat服务器应该运行。

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

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

TCD使用解压的Web应用程序作为输入(请参阅下面使用的属性列表)。以部署程序编程部署的Web应用程序可以包括上下文描述符/META-INF/context.xml.

TCD包含一个即用型Ant脚本,具有以下目标:

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

为了配置部署,请创建一个名为的文件deployer.properties在TCD安装目录root中。在此文件中,每行添加以下name = value对:

此外,您需要确保已为目标Tomcat Manager(TCD使用)设置了用户,否则TCD将不会使用Tomcat Manager进行身份验证,部署将失败。要执行此操作,请参阅Tomcat Manager页面。

  • build:默认情况下,使用的构建文件夹将是${build}/webapp/${path} (${build},默认情况下,指向${basedir}/build)。执行结束后compile目标,Web应用程序.WAR将位于${build}/webapp/${path}.war.
  • webapp:包含将被编译和验证的解压的Web应用程序的目录。默认情况下,该文件夹是myapp.
  • path:默认情况下,部署Web应用程序的上下文路径/myapp.
  • url:正在运行的Tomcat服务器的Tomcat Manager Web应用程序的绝对URL,将用于部署和取消部署Web应用程序。默认情况下,部署者将尝试访问在localhost上运行的Tomcat实例http://localhost:8080/manager/text.
  • username:Tomcat Manager用户名(用户应该具有manager-script的角色)
  • password:Tomcat Manager密码。

以上所述就是小编给大家介绍的《Tomcat9.0官方手册中文版(二):部署》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Development Recipes

Web Development Recipes

Brian P. Hogan、Chris Warren、Mike Weber、Chris Johnson、Aaron Godin / Pragmatic Bookshelf / 2012-1-22 / USD 35.00

You'll see a full spectrum of cutting-edge web development techniques, from UI and eye candy recipes to solutions for data analysis, testing, and web hosting. Make buttons and content stand out with s......一起来看看 《Web Development Recipes》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具