【问题标题】:Update tomcat war file before explode (uncompressed) [duplicate]爆炸前更新tomcat战争文件(未压缩)[重复]
【发布时间】:2016-04-04 20:16:31
【问题描述】:

我的应用程序 WAR 已经有一些设置。我想在部署到 tomcat 容器之前即时更改它们。现在我将它们部署在 /Catalina_base/ 中,启动 tomcat 应用程序,一旦解压缩 WAR,我更新 conf 文件并重新启动 tomcat。在启动 tomcat 之前更新 conf 文件的任何最佳做法?

另外,我如何使用厨师食谱实现这一目标?

非常感谢您的帮助。

【问题讨论】:

标签: java tomcat chef-infra


【解决方案1】:

正如 Chris Nauroth 所说,最佳实践是将特定于环境的配置排除在 WAR 之外。

但是,如果您被该 WAR 中的配置卡住了,那么您可以使用 zip 工具来更新配置文件。

如果您使用的是典型的 Linux 发行版,那么假设您的 WAR 文件名为 application.war,并且您要更新的配置文件是 WEB-INF/classes/com/example/config.properties,那么您可以在启动 Tomcat 之前在部署期间运行这些命令:

unzip application.war WEB-INF/classes/com/example/config.properties
# edit the configuration file now
zip -f -m application.war WEB-INF/classes/com/example/config.properties

在 unzip 命令之后,文件将位于与其在 WAR 中的位置匹配的子文件夹中(例如 WEB-INF/classes/com/example/config.properties),然后第二个 zip 命令会将其从磁盘中删除并放回 WAR。

我不熟悉 Chef,所以我不确定如何在部署过程中自动运行这些命令,但大概它提供了一种像这样直接运行命令的方法。

【讨论】:

    猜你喜欢
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 2018-02-04
    • 2016-04-26
    • 1970-01-01
    • 2012-02-04
    • 2015-12-06
    相关资源
    最近更新 更多