2014-02-05 6 views
0

Я пытаюсь перезагрузить пакет ресурсов во время выполнения. В моем приложении после входа в систему я получаю свойства, вызывающие <f:loadBundle basename="messages" var="msg" />. Вызов сделан в моем шаблоне базы приложений, и все работает хорошо. Файл свойства находится в разделе MyApp/resources/Перезагрузка ресурса без перезагрузки сервера JSF2 - Jboss 7

Следующий шаг - это попытка обновить чтение ресурса в блоке свойств, которое у меня есть в моем userHome/resources. Что я делаю вызов моего управляемый компонента:

File file = new File(System.getProperty("user.home")+ "/resources/"); 
    URL[] urls = {file.toURI().toURL()}; 
    ClassLoader loader = new URLClassLoader(urls); 

    ResourceBundle.clearCache(Thread.currentThread().getContextClassLoader()); 
    ResourceBundle.clearCache(); 
    bundle = ResourceBundle.getBundle("messages",Locale.ENGLISH, loader); 

я не получил никаких ошибок и boundle получил правильные значения, но любые изменения занимают места в моем приложении. Кто-то может сказать мне, как перезагрузить пакет и показать новые значения, полученные мной из внешних файлов? Ясный кэш, похоже, не работает, я избавляюсь от причины faces-config.xml для jsf2 ... Надеюсь, кто-то может помочь.

+0

одно, чтобы загрузить пакеты программно. Другое дело было бы, чтобы они обновлялись при их обновлении. Полагаю, вы стремитесь ко второму? –

+0

Да, я хотел бы обновлять их каждый раз, когда я вношу изменения в файлы свойств, которые у меня есть под пользователем/ресурсами – aegis80

ответ

0

вы можете использовать Apache Commons Configuration, чтобы решить эту проблему,

PropertiesConfiguration propertiesConfig = new PropertiesConfiguration("yourProps.properties"); 
propertiesConfig.setReloadingStrategy(new FileChangedReloadingStrategy()); 

Для этого вам нужно использовать Викисклада конфигурации зависимость/банку.

<dependency> 
    <groupId>commons-configuration</groupId> 
    <artifactId>commons-configuration</artifactId> 
    <version>20041012.002804</version> 
</dependency> 

вы можете найти более подробную информацию в java-doc,

Ресурс:hot-reload-of-properties-file

Смежные вопросы