如果我修改XML以更改init参数的值 我只在重新部署网络应用时看到了这些变化。
我的问题是我无法通过在运行时设置值来解决这个问题。是否有任何API允许我动态更改值。
答案 0 :(得分:8)
出于某种原因,它被称为init-parameter
。所以,你不能。
但是你可以在运行时更改值,这没问题。
ServletContext
(ctx.setAttribute("name", value)
)的属性ServletContext
的所有属性,并提供更改它们的功能。答案 1 :(得分:2)
也许你可以使用apache commons configuration,特别是看看Automatic Reloading ...
答案 2 :(得分:2)
改为使用properties files并编写代码,以便1)每次从中读取值,或者2)可以在命令中重新加载值,或者3)以特定间隔自动重新加载文件。
如果将属性文件放在webapp的运行时类路径中的某个位置或将其路径添加到webapp的运行时类路径中,则可以按如下方式轻松访问/加载它:
Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("filename.properties"));
String value = properties.get("key");