javaweb工程无需修改配置文件多环境热加载部署,
现在碰到这样的问题,有一个web工程打成war包后,需要在开发环境,测试环境,生产环境部署,每次都需要提前修改对应环境的配置信息,比如,数据库地址,zookeeper集群地址等,非常的不方便,并且容易忘记并出错,为了能够一次打包,无需修改配置文件直接多环境热加载部署,提出并实践了以下解决方案:1.war包改成rpm打包。传统的war包放在tomcat的webapps目录下,会全量覆盖以前的
现在碰到这样的问题,有一个web工程打成war包后,需要在开发环境,测试环境,生产环境部署,每次都需要提前修改对应环境的配置信息,比如,数据库地址,zookeeper集群地址等,非常的不方便,并且容易忘记并出错,为了能够一次打包,无需修改配置文件直接多环境热加载部署,提出并实践了以下解决方案:
1.war包改成rpm打包。
传统的war包放在tomcat的webapps目录下,会全量覆盖以前的工程,为了能够不覆盖指定的配置文件(当然这里的配置文件在最开始的时候需要配置一次,以后采用rpm包不会覆盖掉),采用rpm打包方式,rpm有一个很cool的功能,就是能够指定哪些文件不能覆盖,这样的话不同环境的配置信息,除了在最初的时候配置一次,以后升级都不需要重新配置,极大的降低了出错的概率。
2.热加载部署
原先的war包升级后需要重新配置不同环境的配置文件,然后重启tomcat,通过上述方案除了第一次部署需要配置配置信息,以后的升级都不用再配置,至于如何不用重启tocmat,实现工程热加载只需要修改tomcat/conf/server.xml,在<host></host>标签中间添加<Context docBase="工程名" path="/工程名" reloadable="true" source="org.eclipse.jst.j2ee.server:工程名"/>
更多推荐
所有评论(0)