Wir verwenden fmt: setBundle, um ein Ressourcenpaket aus einer Datenbank zu laden (dazu haben wir die ResourceBundle-Klasse erweitert). Wenn wir einen Wert in der Datenbank ändern, müssen wir den Webserver neu laden, um den neuen Wert in der Web-App anzuzeigen.
Gibt es eine einfache Möglichkeit, den neuen Wert zu verwenden, ohne den Webserver neu zu starten?
(Wir tun nicht wollen immer den Wert aus der Datenbank nachschlagen, aber wir möchten den Cache ungültig machen, zum Beispiel indem wir eine spezielle 'admin' URL aufrufen)
EDIT: Wir verwenden JDK 1.4, also würde ich eine Lösung für diese Version bevorzugen. :)
Wie andere in den Kommentaren darauf hingewiesen haben, möchten Sie vielleicht in Spring schauen - insbesondere die ReloadableResourceBundleMessageSource .
Wenn Sie JDK 1.6 verwenden, können Sie die Callback-Methoden getTimeToLive()
und needsReload()
in ResourceBundle.Control , um zu steuern, ob der Bundle-Cache mit neuen Werten aus der Datenbank geladen werden muss.
Tags und Links java resources resourcebundle