如何在Tomcat中为Web应用程序提供上下文配置?
我有一个Web应用程序,它依赖于一些资源和参数在安装后进行配置,例如JDBC连接。
我想到的是提供一个在我部署应用程序时由Tomcat复制到其中的。这样,我提供的只是一个可以复制到appBase文件夹(webapps)中的war文件。Tomcat的文档说,如果有这样的文件,它不会被覆盖,这真的很棒,因为部署后所做的更改不会丢失。META-INF/context.xml
[engine-name]/[server-name]/[app-name].xml
但是这里有一个微妙的问题:由于我们通过复制到webapps目录来部署应用程序,因此Tomcat将首先卸载现有的应用程序以及配置文件。这样,配置文件将丢失/覆盖,这是不可取的。据我所知,Tomcat不会改变这种行为。
问题是:有没有办法通过以Tomcat不会删除现有配置文件的方式安装应用程序来解决此问题。或者,有没有更好的方法来打包应用程序?
请注意,我们不希望将自动部署设置为 false,并且我们不能对安装使用人为干预(这排除了使用 Tomcat Manager Web 应用程序的可能性)。
如果我从.war文件中获取配置文件并将其单独复制为,Tomcat仍将它与我的应用程序相关联,并在我复制新的.war文件后将其删除。[engine-name]/[server-name]/[app-name].xml
另一个假设是:我们事先不知道配置的值。我们只会提供一个示例配置(如果您愿意,可以提供占位符),而实际配置将在稍后的某个时间执行(不一定在安装时间)。
谢谢