1

この問題に遭遇しました: org.apache.commons.configuration.XMLConfiguration.save(String fileName) を呼び出すと、2 回変更されていないプロパティが書き込まれます。たとえば、この foo.xml からすべてのプロパティをロードします。

<config>
    <foo>value</foo>
    <bar>value2</bar>
</config>

すべて正しくロードされました。次に、XMLConfiguration.setProperty("foo", "new_value") を呼び出して foo の値を変更し、すぐに XMLConfiguration.save(fileName) を呼び出すと、次のようになります。

<config>
<foo>new_value</foo>
<bar>value2</bar>
<bar>value2</bar>
</config>

アプリケーションを閉じて再起動し、これらのアクションを繰り返すと、バーの数が再び 2 倍になりますが、1 回の変更ですべてのパラメーターが実行されると、すべてが正しく書き込まれます。

私はこのように書き込もうとしましたが、結果は得られません:

config.setProperty("bar", config.getString("bar"));

助けてください...これは魔法だと思います...

UPD: 問題は解決しました。レシピは簡単です。XMLConfiguration.load() は XMLConfiguration コンストラクターで既に呼び出されているため、呼び出さないでください。

4

0 に答える 0