Wie klar ResourceBundle-cache
Dies ist eine webapp läuft auf Tomcat mit Guice. Laut der docs, wir sollten in der Lage sein zu rufen ResourceBundle.clearCache();
klar, das ResourceBundle-cache und vermutlich Holen Sie sich die neuesten aus dem bundle property-Dateien.
Wir haben auch versucht, die folgenden:
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!
und
ResourceBundle.clearCache(this.class.getClassLoader());
Das Verhalten, das ich erwarte ist:
- Starten Sie tomcat und schlug eine Seite und es sagt, 'Hallo Welt'
- Ändern Sie die Eigenschaften-Datei mit 'Hallo Welt' , 'auf Wiedersehen Erde'
- Löschen Sie den cache mit einem servlet
- Treffer die Seite und erwarten, um zu sehen, 'auf Wiedersehen Erde'
Also Frage ist, wie ist ResourceBundle.clearCache() tatsächlich funktioniert ? Und gibt es eine generische Datei-cache müssen wir auch klar ?
haben Sie irgendwelche Lösungen?
ResourceBundle.clearCache() hinzu, der auf Java 1.6. Ich arbeite an einer Java-1.4 server und das war der Grund, warum clearCache() arbeitet nicht wie erwartet.
ResourceBundle.clearCache() hinzu, der auf Java 1.6. Ich arbeite an einer Java-1.4 server und das war der Grund, warum clearCache() arbeitet nicht wie erwartet.
InformationsquelleAutor Ben George | 2012-03-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser arbeitete für mich:
Hinweise:
ResourceBundle.getBundle()
- Methode nach dem AufrufclearCache()
Methode.
InformationsquelleAutor Devrim
Ich nicht glauben, man kann die Wirkung, die das Neuladen eines bereits erstellten ResourceBundle-Instanz, da Ihre interne control-Klasse erstellt wurde. Sie können versuchen, diese als eine alternative für die Initialisierung des Bundles:
Das könnte sehr gut der Fall sein. Lassen Sie mich überlegen einen anderen Weg, um dieses.
hast du eine Lösung?
InformationsquelleAutor Perception
vielleicht dieser Beitrag kann Ihr problem lösen.
InformationsquelleAutor prongs
Ich fand diese Lösung (funktioniert mit tomcat):
Wie zu nennen :
Die benutzerdefinierte Klasse :
InformationsquelleAutor izanat
InformationsquelleAutor sudhakar tokala
Dies funktioniert, iff können Sie abfangen der ersten Erstellung der Ressource-bundle:
InformationsquelleAutor gabor