我在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
答案 0 :(得分:1)
代码不应该像
def path = "/var/csvs/" + file.fileItem.fileName // notice the trailing fwd slash
否则您很可能正在尝试写入/var
目录。