java.io.IOException:在Grails中从Tomcat创建新文件时拒绝权限

时间:2015-06-04 02:44:17

标签: tomcat grails

我在Tomcat 7上部署了Grails应用程序。这是我的代码片段,它试图创建一个新文件:

def path = "/var/csvs" + file.fileItem.fileName
def fileInputStream = file.inputStream
File f = new File(path)
if (!f.exists()) {
   f.createNewFile()
}

我得到了这个例外:

Permission denied. Stacktrace follows:
java.io.IOException: Permission denied
    at java.io.File.createNewFile(File.java:1006)

我已经给tomcat7(运行tomcat的用户)提供了rwx权限。那么为什么我无法创建新文件? 是“/ var / csvs”试图创建相对于tomcat webapps目录的文件吗?如果是,那么我应该如何在/ var / csvs创建一个文件(其中csvs是我在/ var下创建的文件夹)?

修改

这是我对/ var / csvs文件夹的权限:

root@MyIp:/# ls -ld /var/csvs
drwxrwxrwx 2 tomcat7 tomcat7 4096 Jun  3 15:44 /var/csvs

很明显,tomcat7是该目录的所有者,模式是777

1 个答案:

答案 0 :(得分:1)

代码不应该像

def path = "/var/csvs/" + file.fileItem.fileName // notice the trailing fwd slash

否则您很可能正在尝试写入/var目录。