Tomcat应用部署监听器

2023-12-27

我想知道如何监听 Tomcat Web 应用程序部署。我希望每次从容器中取消部署应用程序或将应用程序部署到容器时都调用我的侦听器。

我已经调查了一下并发现一些听众,即LifecycleListener可以通过 JMX 注册。但不幸的是,这个监听器对我来说还不够,因为它在引擎/主机/上下文处于关闭或启动过程时触发事件。

ContainerListener基本上通知容器关闭和启动事件。

所以,我的问题基本上是:我应该实现哪个接口以及如何将其注册到 tomcat 以便每次部署新应用程序时收到通知?


servlet 上下文初始化/销毁

import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;

import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;

public class AppContextListener implements ServletContextListener {

    private static final Log logger = LogFactory.getLog(AppContextListener.class);

    @Override
    public void contextDestroyed(ServletContextEvent e) {
        logger.warn("AppContext Delete: " + e.getServletContext().getContextPath());
    }

    @Override
    public void contextInitialized(ServletContextEvent e) {
        logger.warn("AppContext Create: " + e.getServletContext().getContextPath());
    }

}

并放入 tomcat/conf/web.xml

   <listener>
     <listener-class>AppContextListener</listener-class>
   </listener>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat应用部署监听器 的相关文章

随机推荐

  • 匹配此 JSON 进行反序列化的模型,带有破折号的字段名称

    我正在尝试创建一个与此 JSON 结构的 JSON NET 反序列化相匹配的模型 第一项 190374 vid 190374 canonical vid 190374 portal id 62515 is contact true prof
  • 本地 JavaScript - 写入本地文件

    我有一些从本地 HTML 文件加载的 JavaScript 代码 无需通过网络服务器 即使用打开file 有没有办法可以使用此文件中的 JavaScript 代码写入本地文件 我知道跨站点限制不允许JavaScript中的很多东西 但这不是
  • 读取文件签名并区分 zip 文件和 docx 文件之间的区别

    我有一个上传例程 我将前几个字节读入数组并将其转换为十六进制字符串以获取文件签名 我一直在将前 4 个字节读入数组 一切似乎都很顺利 直到我遇到了 zip 文件和 docx 文件的问题 它们的前 4 个字节具有相同的签名 50 4b 03
  • 从函数而不是按钮命令调用 Tkinter 框架控制器

    所以我有以下内容 效果很好 import tkinter as tk class App tk Tk def init self args kwargs tk Tk init self args kwargs container tk Fr
  • 如何使用 Passport.js 的远程 NodeJS API 对客户端 Web 应用程序进行身份验证和授权

    如下图所示 我有一个独立的 API 项目在服务器上运行 端口为3001 我有一个 Web 应用程序在服务器上运行 端口为3002 端口上的API3001 拥有 Web 应用程序 和移动应用程序 获取和放置数据所需的所有 API 路由 包括身
  • git pull 和重置因错误“无法创建文件 <文件名>(文件存在)”而停止

    我目前正在将我的公司从 Vault 迁移到 Git 并且我已经在 Github 上设置了存储库 但是由于一些重复出现的错误 本地设置变得令人头疼 最令人困惑的是 当我尝试拉取时 它会取消 并显示一些文件的错误 错误 无法创建文件 文件存在
  • TOpenDialog 的尺寸数据存储在哪里以及如何重置?

    TOpenDialog有一个选项ofEnableSizing它允许用户修改打开对话框的对话框大小 该尺寸数据似乎是为应用程序存储的 如果程序再次启动 对话框将以相同的大小打开 我的问题是 这些数据存储在哪里 我想知道是否有一种简单的方法来重
  • 在 Bash 脚本中使用 Expect 为 SSH 命令提供密码

    我正在尝试使用expect在 Bash 脚本中提供 SSH 密码 提供密码是可行的 但我并没有像我应该的那样进入 SSH 会话 它又回到了 Bash 我的脚本 bin bash read s PWD usr bin expect lt
  • 找到有向无环图的宽度......只能找到父母

    我试图找到有向无环图的宽度 由任意排序的节点列表表示 甚至没有邻接列表 该图 列表适用于类似 GNU Make 的并行工作流程管理器 该管理器使用文件作为执行顺序的标准 每个节点都有一个源文件和目标文件的列表 我们有一个哈希表 这样 给定文
  • 当数据形状为(x,y,z)时如何进行聚类?

    假设我有 10 个单独的观测值 每个观测值的大小为 125 59 我想根据这 10 个观测值的 2d 特征矩阵 125 59 对它们进行分组 这是否可以在不将每个观测值展平为 125 59 1D 矩阵的情况下实现 我什至无法实现 PCA 或
  • Promtail 错误管道阶段只能包含一个键

    尝试设置 Promtail 时出现以下错误 level error ts 2020 11 27T06 10 30 310583Z caller main go 104 msg 创建 promtail 时出错 error 无法创建文件目标管理
  • C/C++ 中的非线程安全文件 I/O

    在解决我们应用程序中的一些性能问题时 我发现 C 的stdio h函数 至少对于我们的供应商来说 C 的fstream类 是线程安全的 结果 每次我做一些简单的事情时fgetc RTL 必须获取锁 读取一个字节 然后释放锁 这对性能不利 在
  • 如何更改 UISearchBar +iPhone 中显示的取消按钮的默认文本

    我正在开发一个应用程序 我想更改搜索栏中搜索字符串的文本 我想更改搜索栏旁边显示的取消按钮的文本 在搜索栏中输入任何字符串之前 我们会将搜索字符串作为默认字符串 我想更改该字符串的文本 当我们单击该搜索栏时 我们会在搜索栏旁边看到一个取消按
  • Django:从日期时间字段查询时间

    在基于 Django 的 postgresql 数据库上 如何按时间过滤日期时间字段 如下所示 class Foo models Model start date models DateTimeField end date models D
  • Objective C 项目中的 Xcode 8.3 Swift 版本错误 (SWIFT_VERSION)

    我在纯 Objective C 项目中使用 Xcode 8 3 时遇到以下错误 我无法找到解决方案 我的构建设置中没有快速参数 而且我也无法在网上找到任何解决方案 有任何想法吗 几天前构建得很好 我能看到的唯一区别是 xcode 更新了 S
  • UnlockField 在 CakePHP 中不起作用

    只是想制作一个非常标准的用户编辑页面 密码 和 重新密码 开始隐藏 但可以通过单击 编辑密码 按钮将其打开 但是 我不断收到来自安全组件的 auth 黑洞错误 Per CakePHP 书 http book cakephp org 2 0
  • 如何创建Facebook风格的固定状态栏?

    我想通过 Web 表单创建固定状态栏以向用户显示各种状态 消息 通知 我可以使用固定 CSS 属性 但我想在 6 7 和 Firefox 中实现 以及所有浏览器 这是关于如何修复底部页面上的元素 栏的快速且简单的解决方案 jixedbar
  • Nashorn JS 对象对 java.util.Map 有效吗?

    我有java方法 void someMethod String str Map map 从 JS 调用这个方法 var map new Object map key1 val1 someMethod str map 例外 java lang
  • 我如何制作一个左/右侧圆润如圆的按钮

    我正在尝试制作一个侧面呈圆形的按钮 但是当我更改屏幕大小时 按钮侧面左侧呈圆形 不会保持纵横比 我认为 我想要每个尺寸的下一个切换按钮 如何为每个分辨率制作一个边角为圆角的 XML 我已阅读此内容 但这不是解决方案 如何让按钮的角变圆 ht
  • Tomcat应用部署监听器

    我想知道如何监听 Tomcat Web 应用程序部署 我希望每次从容器中取消部署应用程序或将应用程序部署到容器时都调用我的侦听器 我已经调查了一下并发现一些听众 即LifecycleListener可以通过 JMX 注册 但不幸的是 这个监