安装WSO2 Governance Registry并启动它后,我在wso2carbon.log
中收到以下错误:
TID: [0] [Greg] [2014-01-08 10:39:08,625] WARN {java.util.prefs.FileSystemPreferences} - Could not lock System prefs.Unix error code 0. {java.util.prefs.FileSystemPreferences}
TID: [0] [Greg] [2014-01-08 10:39:08,625] WARN {java.util.prefs.FileSystemPreferences} - Couldn't flush system prefs: java.util.prefs.BackingStoreException: Couldn't get file lock. {java.util.prefs.FileSystemPreferences}
这些错误每30秒重复一次。不幸的是,日志没有指定它试图锁定的文件。
我尝试使用find /opt/wso2 -type f -exec lsof {} \; | grep W
查找文件系统上的所有文件并使用排他锁,但我找不到任何文件。此外,我尝试了解WSO2 GR源代码,但没有找到对此错误的引用。在WSO2 Jira(https://wso2.org/jira/browse/REGISTRY-1863)上报告了一个错误,但这也没有帮助。
任何人都可以指出我正确的方向或提供任何线索,以获取更多信息吗?
答案 0 :(得分:7)
我们发现这是Java安装手册中的错误。似乎JVM需要对/etc/.java/.systemPrefs
目录的写访问权限,当以非root用户身份运行时,它无法访问该目录,请参阅:http://bugs.java.com/view_bug.do?bug_id=4838770
我通过使用
将/etc/.java/.systemPrefs
目录的所有权更改为wso2:wso2
来解决了这个问题
sudo chown -R wso2:wso2 /etc/.java/.systemPrefs
该文件仍可由root写入(因为root可以写入任何文件),但如果您需要多个用户能够写入此文件,您可以使用以下方式设置文件ACL:
sudo setfacl -R -m u:wso2:rw /etc/.java/.systemPrefs
答案 1 :(得分:0)