首页 > 其他分享 >web server apache tomcat11-03-deploy 如何部署

web server apache tomcat11-03-deploy 如何部署

时间:2024-04-17 10:35:51浏览次数:27  
标签:web Tomcat Web 部署 03 deploy 应用程序 Context TCD

前言

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。

开源项目

从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。

系列文章

web server apache tomcat11-01-官方文档入门介绍

web server apache tomcat11-02-setup 启动

web server apache tomcat11-03-deploy 如何部署

web server apache tomcat11-04-manager 如何管理?

web server apache tomcat11-06-Host Manager App -- Text Interface

web server apache tomcat11-07-Realm Configuration

web server apache tomcat11-08-JNDI Resources

web server apache tomcat11-09-JNDI Datasource

web server apache tomcat11-10-Class Loader

....

Tomcat Web 应用部署

简介

部署是指将 Web 应用程序(无论是第三方 WAR 文件还是自定义的 Web 应用程序)安装到 Tomcat 服务器的过程。

在 Tomcat 服务器内,可以通过多种方式来完成 Web 应用程序的部署。

  • 静态部署:在启动 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)文件。

安装

对于静态部署 Web 应用程序,不需要安装,因为 Tomcat 默认提供了此功能。对于使用 Tomcat Manager 的部署功能,虽然需要一些配置(如 Tomcat Manager 手册中详细说明的那样),但不需要安装。但是,如果要使用 Tomcat Client Deployer (TCD),则需要安装。

TCD 不包含在 Tomcat 核心发行版中,因此必须从下载区域单独下载。下载通常标记为 apache-tomcat-11.0.x-deployer。

TCD 的先决条件是 Apache Ant 1.6.2+ 和 Java 安装。您的环境应定义一个 ANT_HOME 环境值,指向 Ant 安装的根目录,以及一个 JAVA_HOME 值,指向您的 Java 安装。

另外,您应确保 Ant 的 ant 命令和 Java 的 javac 编译器命令可以在您的操作系统提供的命令 shell 中运行。

  1. 下载 TCD 分发包。

  2. TCD 分发包不需要解压到任何现有的 Tomcat 安装中,它可以解压到任何位置。

  3. 阅读《使用 Tomcat Client Deployer》文档。

关于 Context

在讨论 Web 应用程序的部署时,需要理解 Context 的概念。Context 是 Tomcat 所称的 Web 应用程序。

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

Context 描述符不仅帮助 Tomcat 知道如何配置 Context,还帮助其他工具(如 Tomcat Manager 和 TCD)正确执行其功能。

Context 描述符的位置包括:

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

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

第一种情况的文件命名为 [webappname].xml,而第二种情况的文件命名为 context.xml。如果没有为 Context 提供 Context 描述符,Tomcat 将使用默认值配置 Context。

在 Tomcat 启动时部署

如果您不想使用 Tomcat Manager 或 TCD,则需要将 Web 应用程序静态部署到 Tomcat,然后启动 Tomcat。您需要将 Web 应用程序部署到称为 appBase 的位置,该位置由 Host 指定。您可以将所谓的“已解压” Web 应用程序(即非压缩的)复制到此位置,也可以将压缩的 Web 应用程序资源 .WAR 文件复制到此位置。

在默认的情况下,位于主机(默认主机为“localhost”)appBase 属性(默认 appBase 为“$CATALINA_BASE/webapps”)指定的位置中存在的 Web 应用程序仅在 Host 的 deployOnStartup 属性为“true”时才会在 Tomcat 启动时部署。

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

  1. 首先部署任何 Context 描述符。

  2. 然后部署任何未被任何 Context 描述符引用的已解压的 Web 应用程序。如果它们在 appBase 中有一个关联的 .WAR 文件,并且该文件比已解压的 Web 应用程序更新,则将删除已解压的目录,并重新部署 Web 应用程序。

  3. 部署 .WAR 文件。

在运行的 Tomcat 服务器上部署

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

如果 Host 的 autoDeploy 属性设置为“true”,则 Host 将尝试根据需要动态部署和更新 Web 应用程序,例如

,如果新的 .WAR 放入了 appBase 中。要使此功能正常工作,Host 需要启用后台处理,这是默认配置。

autoDeploy 设置为“true”并且运行中的 Tomcat 允许:

  • 将 .WAR 文件复制到 Host 的 appBase 中进行部署。

  • 将已解压的 Web 应用程序复制到 Host 的 appBase 中进行部署。

  • 如果提供了新的 .WAR 文件,则重新部署已经部署的 Web 应用程序。在这种情况下,将删除已解压的 Web 应用程序,并重新展开 .WAR。请注意,如果 Host 配置为不展开 .WAR(unpackWARs 属性设置为“false”),则不会执行展开操作,此时 Web 应用程序将作为压缩的存档重新部署。

  • 如果更新了 /WEB-INF/web.xml 文件(或任何其他定义为 WatchedResource 的资源),则重新加载 Web 应用程序。

  • 如果更新了从中部署了 Web 应用程序的 Context 描述符文件,则重新部署 Web 应用程序。

  • 如果由 Web 应用程序使用的全局或每个主机的 Context 描述符文件已更新,则重新部署依赖的 Web 应用程序。

  • 如果在 $CATALINA_BASE/conf/[enginename]/[hostname]/ 目录中添加了一个文件(文件名对应于先前部署的 Web 应用程序的 Context 路径),则重新部署 Web 应用程序。

  • 如果删除了其文档基址(docBase)的 Web 应用程序,则卸载它。请注意,在 Windows 上,这假定启用了反锁定功能(参见 Context 配置),否则无法删除正在运行的 Web 应用程序的资源。

请注意,还可以在加载器中配置 Web 应用程序重新加载,这样加载的类将被跟踪以进行更改。

使用 Tomcat Manager 进行部署

Tomcat Manager 在自己的手册页面中进行了详细介绍。

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

最后,可以使用 Tomcat 客户端部署程序来部署 Web 应用程序。这是一个可以用来验证、编译、压缩为 .WAR,并将 Web 应用程序部署到生产或开发 Tomcat 服务器的包。应该注意,此功能使用 Tomcat Manager,因此目标 Tomcat 服务器应该正在运行。

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

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

TCD 使用已解压的 Web 应用程序作为输入(请参阅下面使用的属性列表)。通过 deployer 进行编程部署的 Web 应用程序可以在 /META-INF/context.xml 中包含 Context 描述符。

TCD 包含一个可立即使用的 Ant 脚本,具有以下目标:

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

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

此外,您需要确保为目标 Tomcat Manager(TCD 使用的)设置了用户,否则 TCD 将无法与 Tomcat Manager 进行身份验证,部署将失败。

要执行此操作,请参阅 Tomcat Manager 页面。

参考资料

https://tomcat.apache.org/tomcat-11.0-doc/deployer-howto.html

标签:web,Tomcat,Web,部署,03,deploy,应用程序,Context,TCD
From: https://www.cnblogs.com/houbbBlogs/p/18139995

相关文章

  • 基于SpringWeb MultipartFile文件上传、下载功能
    在Web开发中,文件上传是一个常见的功能需求。Spring框架提供了MultipartFile接口,用于处理文件上传请求。MultipartFile可以代表一个多部分文件上传请求中的一个文件,提供了一系列方法用于获取文件的各种属性和内容,使得在后端处理文件上传变得十分方便。下面我们将介绍MultipartFile......
  • P6864 [RC-03] 记忆 题解(评分:8.1)(2023.12.13)
    前言这下又不是官解了吧?模拟赛题,在一个月后又出现在了数据结构讲稿上,令人忍俊不禁。Solution官方解法是用线段树加矩阵,不过赛时的我显然没这么聪明,是想不到的。赛时我就只知道先发掘一些答案的性质。一、一些性质首先,发现这个撤销操作比较棘手,考虑没有撤销操作的情况下,每一......
  • MyBatis-03-environment
    配置<environmentsdefault="default"><environmentid="default"><!--事务类型--><transactionManagertype="JDBC"/><!--数据源类型--><dataSourcetype="POOLED">&l......
  • Swoole 实践篇之结合 WebRTC 实现音视频实时通信方案
    原文首发链接:Swoole实践篇之结合WebRTC实现音视频实时通信方案大家好,我是码农先森。引言这次实现音视频实时通信的方案是基于WebRTC技术的,它是一种点对点的通信技术,通过浏览器之间建立对等连接,实现音频和视频流数据的传输。在WebRTC技术中通常使用WebSocket服务来协......
  • 【爆款推荐】初中中考阅读理解难题一网打尽!句子结构深度解析+答案揭秘,助你轻松冲刺高
    PDF格式公众号回复关键字:ZKYDT003原文1HowmanychildrendoesSumnerhave?解析Howmanychildren多少孩子,SumnerhaveSumner有,标题问Sumner有几个孩子?文本信息IstoppedbecauseIhadneverseen'ournormal'insuchaplace,"themotherofthreechildr......
  • Parcharm-ModuleNotFoundError: No module named 'request'--解决方案
    问题:在Pycharm中报requestsmodule找不到特别的地方:已经通过“pip3installrequests”的命令安装过requests这个模块,并能顺利运行,但是不能在Pycharm中运行 解决方案如下:1.找到Pycharm中的setting设置,并打开2.找到自己工作的目录下的“PythonInterpreter”-->"+......
  • web server apache tomcat11-01-官方文档入门介绍
    前言整理这个官方翻译的系列,原因是网上大部分的tomcat版本比较旧,此版本为v11最新的版本。开源项目同时也为从零手写实现tomcat提供一些基础和特性的思路。minicat别称【嗅虎】心有猛虎,轻嗅蔷薇。系列文章webserverapachetomcat11-01-官方文档入门介绍webserve......
  • vbs实现web自动登录网站的方法
    <divid="navCategory"><h5class="catalogue">目录</h5><ulclass="first_class_ul"><li><ahref="#_label0">一,编写vbs</a></li><li><ahref="......
  • 洛谷题单指南-数学基础问题-P1403 [AHOI2005] 约数研究
    原题链接:https://www.luogu.com.cn/problem/P1403题意解读:计算1~n每个数的约数个数之和。解题思路:1、数学方法1~n的约数范围也在1~n,要计算每个数的约数个数之和可以从约数出发,比如约数是x,那么在1~n中一共有n/x个数包含x这个约数x从1一直枚举到n,就可以得出每个约数是多少个......
  • selenium之webdriver介绍
    1、WebDriver工作原理例子:我们先从一个打车的例子,来理解下webdriver的工作原理,当我们打车时,会有3个角色:乘客:告诉出租车司机去哪里,大概怎么走​出租车司机:按照乘客的要求来操控出租车​出租车:出租车按照司机的操控完成......