Struts 1.2.9重新加载application.properties

时间:2009-07-08 14:31:16

标签: java tomcat properties struts

在我的文件“ struts-config.xml ”中我写道:

当我的应用程序开始成功加载 application.properties

我如何重新加载此属性(因为我想更改内部文件中写入的很多属性)没有重新启动应用程序

非常感谢。

吨。

1 个答案:

答案 0 :(得分:1)

使用(来自http://www.docjar.com/html/api/com/opensymphony/xwork2/util/LocalizedTextUtil.java.html):

...
clearMap(ResourceBundle.class, null, "cacheList");

// if it's Tomcat
if ("org.apache.catalina.loader.WebappClassLoader".equals(cl.getName())) {
    clearMap(cl, loader, "resourceEntries");
}
...

private static void clearMap(Class cl, Object obj, String name)
        throws NoSuchFieldException, IllegalAccessException, 
        NoSuchMethodException, InvocationTargetException {
    Field field = cl.getDeclaredField(name);
    field.setAccessible(true);

    Object cache = field.get(obj);

    synchronized (cache) {
        Class ccl = cache.getClass();
        Method clearMethod = ccl.getMethod("clear");
        clearMethod.invoke(cache);
    }
}

显然,您可以导入该库并在需要时使用它。