首页 > 解决方案 > 如何让 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 。

标签: deploymentconfigurationlog4jtomcat7

解决方案


不使用 Event Hook Listener 的主要问题是没有可靠的方法来判断应用程序是否准备就绪,因为 Catalina 为其每个组件实现了自己的生命周期(如https://tomcat.apache.org所示/tomcat-8.5-doc/api/org/apache/catalina/Lifecycle.html)。

您最好的方法是使用 tail 或一些外部程序推断组件的状态,但是 AFAIK 无法直接在配置文件中实现侦听器。


推荐阅读