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 に答える