精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-25
最后修改:2010-11-25
首先,这是一个javaee应用,在classpath下有一文件util.properties,我写了一个类CommonUitls,其中有如下方法, static getProp(String key)用于获取util.properties中某个键所对应的值, static setProp(String key, String value)用于更新util.properties中的对应key的value,当应用启动以后,首页有这样一句代码 <%= CommonUtils.getProp("imageCount")%>用于得到imageCount的值,在另一个页面我调用 setProp("imageCount","someValue"),设置值成功,且uitl.properties里imageCount的值确实已经改变了,但是如果我不重启应用服务器的话,再访问首页, <%= CommonUtils.getProp("imageCount")%>得到的还是原来的值(如:原来imageCount=4,更新后imageCount=8,不重启服务器得到的还是4),请问这是为什么?难道是类加载有缓存或者什么的?烦请诸位不吝赐教! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-25
已解决tomcat reload的问题,真改了我。
|
|
返回顶楼 | |
发表时间:2010-11-26
修改properties文件得重启才可以生效的吧,楼主怎么配置不重启也可以生效?
|
|
返回顶楼 | |
发表时间:2010-11-26
基本上开发机OO有一半是由于热布置产生的.
所以不建议在正式环境下热布署配置文件. 如果真有需要请把数据移动到数据库中 |
|
返回顶楼 | |
发表时间:2010-11-26
查看一下缓存,把取信息的代码再看一下,我觉得问题出在CommonUtils这个类上面。
|
|
返回顶楼 | |
发表时间:2010-11-26
做过,是可以动态更新的,主要是动态获取WEB-INF下面的属性文件,然后通过store方法保存。
当然也可以考虑数据库 |
|
返回顶楼 | |
发表时间:2010-11-26
是tomcat新版本造成的?
|
|
返回顶楼 | |
发表时间:2010-11-26
可以用JMX
|
|
返回顶楼 | |
发表时间:2010-11-26
致楼上诸位仁兄:
问题已经解决,原因是未设置tomcat热布署reload。另:据说tomcat 6.0.26以前的版本,若设置reload = true,频繁更改web-inf下的配置文件会引起内存泄露,我的6.0.20版本是报了,刚更新两三次就报了,索性存数据库里了。还有一个问题就是${applicationScope.sth},这个应用范围内的属性是不是更改后它也不重读呢? |
|
返回顶楼 | |
发表时间:2010-11-26
将配置文件写在xml文件中,放在ClassPath的外边,更方便!
|
|
返回顶楼 | |