当我尝试为位于主机系统上的命名管道打开RandomAccessFile时,我收到以下错误
12:54:45,048 SEVERE [com.dev.app.servlet.BackgroundListener] (Thread-514) null: java.io.FileNotFoundException: /home/centos/file (Permission denied)
at java.base/java.io.RandomAccessFile.open0(Native Method)
at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:345)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:259)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:214)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:127)
at deployment.app.war//com.dev.app.util.Reader.run(Reader.java:35)
管道的操作系统权限如下
prwxrwxrwx. 1 centos centos 0 Jun 2 12:50 file
这是我用来访问文件的代码
RandomAccessFile pipe = null;
BufferedReader br = null;
try {
pipe = new RandomAccessFile(Paths.PIPE, "rw");
} catch (FileNotFoundException ex) {
Logger.getLogger(BackgroundListener.class.getName()).log(Level.SEVERE, null, ex);
}
我的服务器配置:Wildfly 13,Jdk 10,Centos 7
在debian机器上,相同的war文件正常工作,可能是问题的原因?
非常感谢。
答案 0 :(得分:0)
得到解决方案,这是一个许可问题。 对于/ home / centos / file,777设置了Altought权限,文件夹/ home / centos的权限设置为700
centos@ip ~ $ getfacl /home/centos
# file: home/centos
# owner: centos
# group: centos
user::rwx
group::---
other::---
通过修复许可解决,谢谢。