我使用以下方法从类路径加载属性文件:
String cheminFichier = new StringBuilder(100).append(classeBP.getPackage().getName().replace(".", "/")).append(File.separator).append(
REPERTOIRE_MAPPING).append(nomFichier).append(".properties").toString();
InputStream isMapping = Thread.currentThread().getContextClassLoader().getResourceAsStream(cheminFichier.toString());
if (isMapping == null)
{
throw new ServiceMappingException("Erreur lors du chargement du mapping du service. Le fichier "
+ cheminFichier + " n'existe pas.");
}
else
{
Properties mapping = new Properties();
try
{
mapping.load(isMapping);
}
catch (IOException e)
...
}
好的,工作了。但是,如果我在 Tomcat 运行时修改属性文件的内容,则更改将被忽略。
它不像类那样热重载。
我的上下文配置为reloadable="true"
选项和 Thread.currentThread().getContextClassLoader() 返回的类加载器是 WEBAPP 类加载器(不是系统类加载器或其他)。
我读到可以使用 ServletContext.getResourceAsStream,但我无法访问 servlet 上下文。
这是 Tomcat 5.5。
任何想法 ?如果没有,您是否有强制重新加载特定资源(我的属性文件)的解决方案?
Thanks !
你可以使用类似的东西公共配置 http://commons.apache.org/configuration/支持自动重装 http://commons.apache.org/configuration/userguide/howto_filebased.html#Automatic_Reloading.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)