Это webapp работает на Tomcat, используя Guice. В соответствии с документами мы можем позвонить ResourceBundle.clearCache();
, чтобы очистить кэш ResourceBundle и предположительно получить последние из файлов свойств пакета.Как очистить кэш ResourceBundle
Мы также пытались следующее:
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!
и
ResourceBundle.clearCache(this.class.getClassLoader());
поведения, которое я ожидающий является:
- Включать кот и ударили страницу и говорят 'Hello World'
- Изменить файл свойств, содержащий «Hello Мир»до„Прощайте Земли“
- Очистить кэш с помощью сервлета
- Хита страницы и ожидать, чтобы увидеть„Прощайте Землю“
Так вопрос, как ResourceBundle.clearCache() на самом деле работает? И есть ли общий кеш-файл, который нужно очистить?
вы найдете какие-либо решения этого? – prongs
ResourceBundle.clearCache() добавлен в Java 1.6. Я работал на сервере Java 1.4, и именно поэтому clearCache() работает не так, как ожидалось. – Devrim