2009-07-08 6 views
1

"のstruts-config.xmlのは" 私が書いてきた:のStruts 1.2.9リロードapplication.properties

を自分のアプリケーションが負荷に成功application.propertiesを起動します。 (私はファイル内に書いた財産の多くを変更したいので)

どのように私は再始動アプリケーションなしこのプロパティをリロードすることができますか?

ありがとうございます。

T.(http://www.docjar.com/html/api/com/opensymphony/xwork2/util/LocalizedTextUtil.java.htmlから)

+0

したがって、コンテナを再起動せずにstruts configおよび.propertiesファイルのプロパティを変更したいのですか? – amischiefr

答えて

1

使用:

... 
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); 
    } 
} 

もちろん、あなただけの、そのライブラリをインポートして、あなたもしたい場合は、それを使用することができます。

関連する問題