Tomcat7 не имеет прав на запись - PullRequest
0 голосов
/ 25 мая 2018

Я установил Tomcat 7.0.76 на свой компьютер CentOs 7 из официальных источников, и у Tomcat вообще не было доступа для записи.Каждый раз, когда что-то в моем коде хочет записать на диск или создать каталог, я получаю сообщение об ошибке отказа в разрешении.

Например, если я хочу создать каталог, я получаю эту ошибку:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'application': Invocation of init method failed; nested exception is org.ehcache.StateTransitionException: Directory couldn't be created: /usr/share/tomcat/myDir

Когда я сам создаю каталог и хочу записать в него файл, я получаю эту ошибку:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'application': Invocation of init method failed; nested exception is org.ehcache.StateTransitionException: Location isn't writable: /usr/share/tomcat/myDir

Я уже пробовал:

chown -R tomcat:tomcat /usr/share/tomcat
chmod -R 775  /usr/share/tomcat/

Служба tomcatработает под пользователем tomcat

$ top | grep tomcat
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
2725 tomcat    20   0   21,7g   2,2g  24612 S   0,9  7,1   2:28.16 java

То есть вывод из ll

$ ll  /usr/share/tomcat/
insgesamt 8,0K
drwxrwxr-x. 2 tomcat tomcat 4,0K 24. Mai 18:48 bin
lrwxrwxrwx. 1 tomcat tomcat   11 24. Mai 18:48 conf -> /etc/tomcat
lrwxrwxrwx. 1 tomcat tomcat   22 24. Mai 18:48 lib -> /usr/share/java/tomcat
lrwxrwxrwx. 1 tomcat tomcat   15 24. Mai 18:48 logs -> /var/log/tomcat
drwxrwxr-x. 5 tomcat tomcat 4,0K 24. Mai 19:54 resources
lrwxrwxrwx. 1 tomcat tomcat   22 24. Mai 18:48 temp -> /var/cache/tomcat/temp
lrwxrwxrwx. 1 tomcat tomcat   23 24. Mai 18:48 webapps -> /var/lib/tomcat/webapps
lrwxrwxrwx. 1 tomcat tomcat   22 24. Mai 18:48 work -> /var/cache/tomcat/work

Примечание: я развернул тот же файл .war на другом компьютере CentOs 7 с той же версией Tomcatи все работало нормально.

1 Ответ

0 голосов
/ 25 мая 2018

SELinux может быть ответственным за отказ в этом разрешении.Попробуйте отключить его с помощью setenforce permissive, и, если это решит вашу проблему, корректно настройте политику SELinux.В этом случае, вероятно, вам просто нужно скопировать на первый сервер, на котором он работает, если только на этом не отключен SELinux, но помните, что его отключение не рекомендуется в производстве.

...