Tomcat веб-приложение не может создать файл в каталоге, так как разрешение запрещено - PullRequest
0 голосов
/ 16 октября 2018

В своем проекте я создал сервлет, в который пользователи могут загружать мультимедийные файлы.Эти файлы будут сохранены на основе пути в контекстном параметре.В моем домашнем компьютере Windows, это работает хорошо.Тем не менее, на моем Linux Linux VPS, эта ошибка запрещена, которая появляется в файле localhost.log.

java.io.IOException: Permission denied
        at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.base/java.io.File.createNewFile(File.java:1024)
        at post.Upload.doPost(Upload.java:194)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

Файл должен быть создан и записан в / var / sociogram / media / public.Я попробовал

chown -R tomcat:tomcat /var/sociogram/media 

и получил права на чтение для пользователя, когда я

ls -l /var/sociogram/media

web.xml: https://github.com/Manoharan-Ajay-Anand/sociogram/blob/master/Sociogram/src/main/webapp/WEB-INF/web.xml

сервлет: https://github.com/Manoharan-Ajay-Anand/sociogram/blob/master/Sociogram/src/main/java/post/Upload.java

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Основная проблема заключалась в том, что мои каталоги имели только права на чтение.Я понял, что для систем Unix x разрешение должно быть дано для каталогов, чтобы программа могла проходить через каталог.Без него права на чтение и запись бесполезны.

0 голосов
/ 16 октября 2018

Тем не менее, на моем Linux Linux VPS есть эта ошибка отказа в разрешении, которая появляется в файле localhost.log.

Путь к файлу, упомянутый в этом сообщении об ошибке - существует ли он?

Есть ли у вас каталог "temp" в вашем каталоге $ CATALINA_BASE?(Наряду с обычными каталогами "conf", "webapps", "logs" и "work").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...