【经验随笔】 Tomcat多个APP使用相同名称环境变量导致问题

本文分析了在同一Tomcat服务器上部署两个应用程序时出现的一个问题:由于配置文件名称相同且环境变量未正确区分,导致其中一个应用读取到了另一个应用的配置文件。通过调整环境变量名称解决了这一问题。

背景介绍

之前遇到一个问题,在一个tomcat下部署了两个APP,其中一个APP不能正常从底层接口获取数据。如果将两个APP分到不同服务器上的tomcat部署,又都正常了。分析了一下:

远程调试跟代码发现是其中一个APP读取的配置文件内容不对

这两个APP都有一个相同名称的配置文件,只是文件中的内容不同。仔细检查了这两个APP的配置文件,文件内容没有什么问题。为什么读出来的结果不就对了呢。

查看读取文件路径变量发现这两个APP读取的是同一个配置文件

也就是说其中一个APP读的配置文件是另一个APP下面的。

定位原因

跟踪代码发现原来APP中读取配置文件的方式是在系统初始化的时候将配置文件的路径写到到一个系统环境变量中,后面使用的时候再从系统环境变量中取出配置文件路径读取:

System.setProperty(配置文件Key, 配置文件路径);

第二个APP项目是直接拷贝第一个项目代码修改的,拷贝后环境变量名称–”配置文件Key”没有修改,导致第二APP初始化时就把第一个APP的配置文件路径覆盖了。解决方法是为两个APP设置不同的KEY,避免覆盖。

使用System全局变量要考虑是否会被其他运行程序覆盖,拷贝代码也要慎重。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值