我使用以下方法从类路径加载属性文件:
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。
有什么想法吗?如果没有,您有强制重新加载特定资源(我的属性文件)的解决方案吗?
谢谢!