Comment effacer ResourceBundle cache

C'est une webapp en cours d'exécution sur Tomcat, à l'aide de Guice. Selon les docs nous devrions être en mesure d'appeler ResourceBundle.clearCache(); pour effacer le ResourceBundle cache et probablement d'obtenir la plus récente du lot de la propriété des fichiers.

Nous avons aussi essayé le suivant:

Class klass = ResourceBundle.getBundle("my.bundle").getClass().getSuperclass();
Field field = klass.getDeclaredField("cacheList");
field.setAccessible(true);
ConcurrentHashMap cache = (ConcurrentHashMap) field.get(null);
cache.clear(); //If i debug here I can see the cache is now empty!

et

ResourceBundle.clearCache(this.class.getClassLoader());

Le comportement que j'attends est:

  1. Démarrage de tomcat et appuyez sur une page et il dit 'Bonjour le Monde'
  2. Modifier le fichier de propriétés contenant 'Bonjour le Monde!" à "Adieu la Terre"
  3. Vider le cache à l'aide d'une servlet
  4. Frapper la page et attendre de voir "Adieu la Terre"

Donc, la question est, comment est ResourceBundle.clearCache() fonctionne réellement ? Et est-il un générique du cache de fichiers nous devons clair aussi ?

avez-vous trouver des solutions à cette situation?
ResourceBundle.clearCache() est ajoutée à la version 1.6 de Java. Je travaillais sur un Java 1.4 serveur et que c'était la raison pour laquelle clearCache() ne fonctionne pas comme prévu.

OriginalL'auteur Ben George | 2012-03-22