部署是指将Web应用程序(第三方WAR或您自己的自定义Web应用程序)安装到Tomcat服务器的过程。
Web应用程序部署可以在Tomcat服务器中以多种方式完成。
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)文件中。
静态部署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中运行。
在谈论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)中的文件名为[webappname] .xml,但(2)中的文件名为context.xml。如果没有为Context提供Context Descriptor,Tomcat将使用默认值配置Context。
如果您对使用Tomcat Manager或TCD不感兴趣,那么您需要将Web应用程序静态部署到Tomcat,然后启动Tomcat,此类部署的位置称为appBase,它对于每个主机是指定的。你要么复制一个所谓的 exploded web application 到此位置,或压缩的Web应用程序资源.WAR文件。
还有当Host的deployOnStartup属性为“true”时,在Tomcat启动时应用才会部署到appBase指定的位置。
在这种情况下,Tomcat启动时将发生以下部署顺序:
可以将Web应用程序部署到正在运行的Tomcat服务器。
如果 Host的 autoDeploy属性为“true”,主机将尝试根据需要动态部署和更新Web应用程序,例如,如果将新的.WAR放入appBase。为此,主机需要启用后台处理,这是默认配置。
autoDeploy设置为“true”,运行Tomcat允许:
请注意,也可以在加载程序中配置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脚本,具有以下目标:
为了配置部署,请创建一个名为的文件deployer.properties在TCD安装目录root中。在此文件中,每行添加以下name = value对:
此外,您需要确保已为目标Tomcat Manager(TCD使用)设置了用户,否则TCD将不会使用Tomcat Manager进行身份验证,部署将失败。要执行此操作,请参阅Tomcat Manager页面。