在我当前的应用程序中,我们使用 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) 每当我从外部更改我的首选项值时,它都不会刷新 prefs.xml 中的值。这是服务器重新启动的一次性过程吗?
任何有关任务的帮助都会对我非常有帮助。
最佳答案
a) 最近我发现,每当我在 Glassfish 中启动应用程序时,Glassfish 都会创建一个 prefs.xml 文件,其中包含我在/.java/.userPrefs/下设置的所有首选项。但我没有编写代码将其存储在该位置。那么,Glassfish 的默认行为是将首选项存储在该位置吗?或者有什么设置吗?
答案:玻璃鱼会自动完成。它获取首选项,然后存储到相同的首选项中。
b) 现在,如果问题 a 的答案是肯定的。然后我更改 prefs.xml 中的首选项值,但之后如果我从 java.util.Preference 获取值,我只会获取旧值而不是新值。为什么java不刷新值?或者 prefs.xml 仅用于导入/导出首选项?
答:仅适用于导入和导出。
c) 每当我从外部更改我的首选项值时,它都不会刷新 prefs.xml 中的值。这是服务器重新启动的一次性过程吗?
Ans:prefs.xml 仅用作备份副本。如果您通过 java.util.Preference 更新,那么它也不会反射(reflect)在 prefs.xml 中。为了更好地理解,更改 prefs.xml 中的值然后重新启动服务器。您会发现 glassfish 将您的值替换为通过 java 代码设置的值。
关于java - prefs.xml(java.utils.prefs.Preference) 由 Glassfish 自动刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16389199/