1

在我当前的应用程序中,我们使用 Glassfish 来部署我的 ear 文件,我们从不同的地方读取用户特定的值并将其存储到 java.util.prefs.Preference 中以供以后使用。我们还可以选择从外部更改 java.util.prefs.Preference。现在的问题是:

a) 最近我发现,每当我在 Glassfish 中启动我的应用程序时,Glassfish 都会创建一个prefs.xml文件,其中包含我在/.java/.userPrefs/下设置的所有首选项。但是我没有在哪里编写代码来将其存储在这个位置。那么,Glassfish 将首选项存储在此位置是默认行为吗?或者有什么设置吗?

b) 现在,如果问题 a 的答案是肯定的。然后我更改prefs.xml中的首选项值,但之后如果我从 java.util.Preference 中获取值,我得到的只是旧值而不是新值。为什么java不刷新值?或 prefs.xml 仅用于导入/导出首选项?

c) 每当我在外部更改我的 Preference 值时,它都不会刷新prefs.xml中的值。这是服务器重启的一次性过程吗?

对探索的任何帮助都会对我有很大帮助。

4

1 回答 1

1

a) 最近我发现,每当我在 Glassfish 中启动我的应用程序时,Glassfish 都会创建一个 prefs.xml 文件,其中包含我在 /.java/.userPrefs/ 下设置的所有首选项。但是我没有在哪里编写代码来将其存储在这个位置。那么,Glassfish 将首选项存储在此位置是默认行为吗?或者有什么设置吗?

答:玻璃鱼会自动完成。它获取首选项,然后存储到相同的首选项中。

b) 现在,如果问题 a 的答案是肯定的。然后我更改 prefs.xml 中的首选项值,但之后如果我从 java.util.Preference 中获取值,我得到的只是旧值而不是新值。为什么java不刷新值?或 prefs.xml 仅用于导入/导出首选项?

答:仅适用于进出口。

c) 每当我在外部更改我的 Preference 值时,它都不会刷新 prefs.xml 中的值。这是服务器重启的一次性过程吗?

Ans: prefs.xml 仅用作备份副本。如果您通过 java.util.Preference 更新,那么它也不会反映在 prefs.xml 中。更好地理解,更改 prefs.xml 中的值,然后重新启动服务器。您会发现 glassfish 将您的值替换为通过 java 代码设置的值。

于 2013-05-15T09:00:46.893 回答