Il s'agit d'une application Web s'exécutant sur Tomcat, à l'aide de Guice. Selon les documents, nous devrions être en mesure d'appeler ResourceBundle.clearCache();
pour effacer le cache ResourceBundle et probablement obtenir les dernières informations à partir des fichiers de propriétés du bundle.Comment effacer le cache ResourceBundle
Nous avons également essayé ce qui suit:
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 je me attends est:
- Démarrez tomcat et appuyez sur une page et il dit 'Hello World'
- Modifier le fichier de propriétés contenant 'Hello » To 'Au revoir la Terre'
- Vider le cache en utilisant un servlet
- Hit la page et attendent de voir 'Adieu la Terre'
Alors question est, comment ResourceBundle.clearCache() fonctionne réellement? Et y a-t-il un cache de fichiers génériques que nous devons effacer également?
avez-vous trouvé des solutions à cela? – prongs
ResourceBundle.clearCache() est ajouté à Java 1.6. Je travaillais sur un serveur Java 1.4 et c'était la raison pour laquelle clearCache() ne fonctionnait pas comme prévu. – Devrim