同事升级过程中遇到一个问题,修改了config.properties 的配置文件但不起作用。
尝试过:
1.删除服务器缓存,重启中间件。依旧读取旧的配置文件。
2.在程序中修改配置文件名,重启中间件,报找不到配置文件。
3.不走配置文件,在程序中hard coding,ok。
第二天一起讨论这个问题,让我猜猜是什么原因。
答:1.可能与中间件的缓存有关。但同事确认缓存已经删除。排除这种可能。
2.程序读取的配置文件名称或路径不正确。(修改过文件名,找不到配置文件)。排除这种可能。
3.优先加载了其它路径的配置文件。
1,2 情况已经排除,只有尝试第三种情况了。
他也尝试在应用的目录下按文件名查找了配置文件,结果只找到一个。
find . -name config.properties
我尝试在操作系统的整个目录下查找同名的配置文件.
find / -name config.properties
结果在用户的家目录下(/home/appuser/config.properties)也找到一个同名的配置文件,是不是这个文件影响的呢?
在测试环境模拟了类似的环境,家目录下的这个配置文件果然是优先加载。
同时,还找到一篇讨论这个问题的帖子。
http://blog.csdn.net/shishaomeng/article/details/4434623。