1

我有一个 DefaultConfigurationBuilder(来自 commons-configuration v1.9)。这个对象(名为 config)由这个非常简单的文件初始化:

<?xml version="1.0" encoding="UTF-8" ?>

 <configuration>
<system/>
<properties fileName="webapp-commons.properties"  throwExceptionOnMissing="true">
    <reloadingStrategy refreshDelay="1000" config-class="org.apache.commons.configuration.reloading.FileChangedReloadingStrategy"/>
</properties>

因此,对 webapp-commons.properties 文件的修改必须强制重新加载文件。但这并没有按预期工作。这是我的小测试:

 log.debug("Go pour modifier le fichier !");
    for (int i=0; i < 10 ; i++) {
        System.out.println("-- value : "+config.getString("clouderial.business.application.name"));
        Thread.sleep(3000);
    }
    log.debug("Vous auriez du modifier le fichier");

“clouderial.business.application.name”的值永远不会改变。

任何帮助将不胜感激。

JM。

4

1 回答 1

1

解决方案很简单:只需在配置文件中添加一个标题:

<header>
   <result forceReloadCheck="true"/>
</header>

它有效。

完整的配置文件现在是:

<?xml version="1.0" encoding="UTF-8" ?>

<configuration>
    <header>
        <result forceReloadCheck="true"/>
    </header>
    <system/>
    <properties fileName="webapp-commons.properties"  throwExceptionOnMissing="true">
            <reloadingStrategy refreshDelay="1000" config-class="org.apache.commons.configuration.reloading.FileChangedReloadingStrategy"/>     
    </properties>
</configuration>
于 2013-01-20T10:03:06.930 回答