在编写部署在Tomcat上的Grails应用程序时,我遇到了奇怪的难题。

创建简单的测试 Controller 后,我想在其中编写测试内容
包com

package com.domain.controller

import java.io.File;
import java.io.PrintWriter;

class TestController {

        def index() {
                // test
                try {
                        PrintWriter writer = new PrintWriter("/home/user/domains/domain.com/public_html/the-file-name.txt");
                        writer.println("The first line");
                        writer.println("The second line");
                        writer.close();
                } catch (IOException e) {
                        throw new RuntimeException(e);
                }
        }
}

我有一个异常(exception):



我已经将chmod设置为777变成/home/user/domains/domain.com/public_html/tomcat7.tomcat7是所有者。我也尝试过创建访问权限为777且所有权设置为tomcat7的文件,但仍然出现异常:
ls -al /home/user/domains/domain.com/public_html
razem 16
drwxrwxrwx 3 tomcat7 tomcat7 4096 01-08 23:25 .
drwxr-xr-x 8 user    user    4096 12-16 17:14 ..
-rwxrwxrwx 1 tomcat7 tomcat7    0 01-08 23:25 the-file-name.txt

我还应该满足OS中的哪些条件?

如果有人可以澄清这个问题,我将不胜感激。

编辑:

我已经在设置777的/path1下创建了目录。文件存储得很完美。
我还创建了/path2/testdir下的目录,但是path2没有权限777和chown。它也可以。我也用字符testdir.来测试_,也可以使用。

我的调查非常深入,无法理解其行为。

最佳答案

确保您还具有读取和执行对所有父目录的访问权限。

例:chmod o+x /home/user

10-08 10:48