我正在使用一个古老的遗留Web应用程序,我需要通过将资源配置与应用程序本身分离来为持续集成做好准备(这样我们就可以创建一个适用于每个环境的WAR文件,假设配置文件存在于某些预定的位置app服务器外的文件系统位置)。
与我们使用Spring
上下文的其他更现代的网络应用程序不同,此应用程序通过应用程序服务器上下文获取其数据库配置,它位于META-INF/context.xml
,类似于
<?xml version='1.0' encoding='utf-8'?>
<!--
Context configuration file for the Tomcat Administration Web App
-->
<Context docBase="axis2" reloadable="true" crossContext="true">
<Resource
name="jdbc/GWSDEV"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
username="myuser"
password="mypasswd"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://my.server.com/mydb"
maxActive="100"
maxIdle="30"
maxWait="10000" />
</Context>
我想将此配置移到Tomcat应用程序之外的某处,并重新配置应用程序以加载/etc/myancientapp/datasource.props
之类的属性文件,这样我就可以在Jenkins中构建一个没有嵌入式配置的WAR文件并部署它在每个环境中进行战争,而不必为每个环境构建一个单独的环境,仅在该文件中有所不同。然后配置在每个环境中都会有所不同,但我可以使用固定路径(/etc/myancientapp/datasource.props)。
如何将此配置从我的应用中分离出来,并将其替换为指向要从应用外部加载的配置文件的指针?