我设法以某种方式解决了这个问题。
1-在Tomcat的appBase之外的某个地方安装一个分解的WAR目录,假设它在[tomcat.conf]/[engine]/[hostname]中。[如果您的应用程序从未爆炸的战争中运行,则可以在此步骤中使用WAR文件代替WAR目录。
2-将上下文配置文件复制到[tomcat.conf]/[engine]/[hostname]目录中,我们将其称为MyApp.xml。此文件将指向应用程序的位置:
maxActive="100" maxIdle="30" maxWait="10000" username="XXX" password="XXX"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" />
3-现在,您可以随意修改配置文件。
4-通过在/ usr / local / MyApp中复制应用程序的新版本来更新应用程序
笔记:
a)此解决方案也适用于未扩展的.war文件,但是由于我们使用Spring的Log4JConfigListener,因此不会从未爆炸的.war文件运行。 Tomcat不会爆炸放在appBase(webapps)文件夹外的.war文件。
b)这种方法不会阻止您在/usr/local/MyApp/META-INF/context.xml中包含context.xml,因为Tomcat在此配置中不会使用它。 您可以在开发环境中使用它,在其中将.war文件转储到appBase(webapps)文件夹中。
这是我到目前为止所取得的,仍在寻找更好的解决方案。