我使用nio2的WatchService为Linux服务器创建了一个监视服务Java应用程序,通过该应用程序,它可以监视已安装的NAS驱动器中的某些目录。这些文件将通过NFS,MQ或SFTP到达。
我在其他地方阅读过,指出WatchService将无法在远程驱动器上工作,但是在我测试它时似乎可以正常工作。
我的测试是将我曾经用来运行Java服务的用户复制或“触摸”新文件到受监视的目录中的混合操作。
问题: 我的WatchService在实时部署期间未在那些特定目录中检测到任何事件。经过进一步检查,这些文件由与执行我的Java程序不同的用户/组拥有。
这样,我执行了一项测试,即从新组中创建了一个新用户,然后触摸/复制到该目录中,它可以正常工作!至少所有人都读取所有文件的权限。 (甚至在没有所有人阅读的情况下进行测试,无论如何,我的程序至少都会记录CREATE_EVENT)
我无法为用于NFS / MQ / SFTP的用户获取访问权限以测试此问题。因此,我在这里遇到的问题上寻求帮助或至少是清晰的。