Я столкнулся с странным поблемом при написании приложения Grails, развернутого на Tomcat.
После создания простого тестового контроллера я хочу написать тестовое содержимое в пакет 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);
}
}
}
Я получаю исключение:
Класс java.io.FileNotFoundException Сообщение /home/user/domains/domain.com/public_html/the-file-name.txt(Brak dostępu)
Я установил 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
Какие условия в ОС также должны встречаться?
Я был бы очень признателен, если бы кто-нибудь смог прояснить проблему.
ИЗМЕНИТЬ
Я создал каталог под /path1
, установите 777. Файлы хранятся отлично.
Я также разбил каталог под /path2/testdir
, но path2 не имеет разрешения 777 и chown. Он также работает. Я также тестировал testdir
с символами .
и _
, также работает.
Я очень расследую и не могу понять поведение.