deployment - 如何让 Tomcat 在完成部署 Web 应用程序的 .war 文件后运行命令
问题描述
我们知道,在 Tomcat 启动期间,它会部署其 Web 应用程序的 .war 文件。我的问题是部署后我需要运行命令来修改部署后生成的Web应用程序的WEB-INF /中的文件,并且我需要让Tomcat为我自动执行此操作,这可以实现吗?部署后类似于 post_run 命令。
我发现 CustomEventHookListener 可能可以做到这一点How to run script on Tomcat startup? ,但这涉及到创建一个新的 Java 类,我不允许这样做。我必须想办法在 TOMCAT_HOME/conf 中修改现有的 Tomcat 配置,例如 server.xml 或 tomcat.conf 。
解决方案
不使用 Event Hook Listener 的主要问题是没有可靠的方法来判断应用程序是否准备就绪,因为 Catalina 为其每个组件实现了自己的生命周期(如https://tomcat.apache.org所示/tomcat-8.5-doc/api/org/apache/catalina/Lifecycle.html)。
您最好的方法是使用 tail 或一些外部程序推断组件的状态,但是 AFAIK 无法直接在配置文件中实现侦听器。
推荐阅读
- node.js - 如何使用 React 构建 UAT 环境?
- react-native - 路由“ActivityFeed”的组件必须是 React 组件
- javascript - 我可以做些什么来存储类的实例并在反应应用程序的上下文中管理状态
- kubernetes - 为一个 pod 请求所有可用的大页面
- swift - 如何解开结构中的可选项并使用 if 语句打印可选项?
- typescript - 如何在 TypeScript 中设置元组?
- javascript - 下载 Excel 后如何停止显示正在加载的 GIF
- python - 使用 Django 读取数组中的字典到 HTML
- audio - 如何在 FFmpeg 的压缩器滤波器中指定本底噪声
- excel - 未找到 VBA 消息自动化错误元素