java - Java 7 Watch Service 无法正确检测事件
问题描述
我使用 nio2 的 WatchService 为 Linux 服务器创建了一个监视服务 java 应用程序,我让它监视已安装的 NAS 驱动器中的一些目录。文件将通过 NFS、MQ 或 SFTP 到达。
我在其他地方读到过,WatchService 将无法在远程驱动器上工作,但是当我测试它时它似乎确实可以工作。
我的测试是作为我用来运行 java 服务的用户将新文件复制或“触摸”到监视目录中的混合。
问题:我的 WatchService 在实时部署期间没有检测到这些特定目录中的任何事件。经过进一步检查,这些文件由不同的用户/组拥有,而不是用于执行我的 java 程序的用户/组。
因此,我进行了一项测试,我从一个新组中创建了一个新用户,然后触摸/复制到目录中,它就可以工作了!至少每个人都读取所有文件的权限。(甚至在不为所有人阅读的情况下进行测试,我的程序至少会记录 CREATE_EVENT 无论如何)
我无法为用于 NFS/MQ/SFTP 的用户获取访问权限以测试此问题。因此,我正在寻求一些帮助或至少澄清我在这里面临的问题。
解决方案
推荐阅读
- javascript - 如何更改 javascript 中发出文本的大小和/或重量?
- php - 我怎样才能删除此错误(!)警告:mysqli_query():第 28 行 D:\wamp64\www\complete_blog_php\admin\includes\post_functions.php 中的空查询
- string - 合并两个非常大的文件,忽略第一句话
- c++ - 为什么我的朋友班不能访问私人会员?
- tinkerpop - janusGraph 使用远程连接更新和删除:报告 DefaultGraphTraversal.none()
- css - 如何让我的自定义光标在 create-react-app 中工作?
- ssl - 启用 SSL 的 Cloudflare 代理如何连接到非 SSL 端点?
- r - 如何获得lme4混合模型中随机变量的p值?
- python - Python数组元素赋值
- r - R Markdown:导入 R 脚本对象