爆炸前更新tomcat war文件(未压缩)

时间:2015-12-30 20:13:15

标签: java tomcat chef

我的应用程序WAR已经完成了一些设置。在tomcat容器中部署之前,我想在飞行中更改它们。现在我将它们部署在/ Catalina_base /中,启动tomcat应用程序,一旦WAR解压缩,我更新conf文件并重新启动tomcat。在启动tomcat之前更新conf文件的最佳做法是什么?

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

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

正如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

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

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