2009-07-08 4 views
1

dans mon dossier "struts-config.xml" J'ai écrit:Struts 1.2.9 reload application.properties

Quand commencer ma demande de charge avec succès application.properties.

Comment puis-je recharger ces propriétés (parce que je veux changer beaucoup de biens à l'intérieur de fichier) écrivaient sans application redémarrage?

Merci beaucoup.

T.

+0

Vous souhaitez donc modifier les propriétés dans votre fichier struts config et .properties sans redémarrer le conteneur? – amischiefr

Répondre

1

utilisation (de 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); 
    } 
} 

De toute évidence, vous pouvez simplement importer cette bibliothèque et de l'utiliser si vous voulez aussi.