java - Tomcat webapp 无法在目录中创建文件,因为权限被拒绝

标签 java tomcat servlets centos

在我的项目中,我创建了一个 servlet,用户可以在其上上传媒体文件。这些文件将根据上下文参数中的路径保存。在我的 Windows PC 上,它运行良好。但是,在我的 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

网络.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

最佳答案

However, on my linux vps, there is this permission denied error that appears on the localhost.log file.

该错误消息中提到的文件路径 - 它是否存在?

您的 $CATALINA_BASE 目录中是否有“temp”目录? (除了通常的“conf”、“webapps”、“logs”和“work”目录)。

关于java - Tomcat webapp 无法在目录中创建文件,因为权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52827649/

相关文章:

java - 从 H2 控制台访问加密数据库

java - 如何回到上一个切换?

tomcat - 从 p7b 或 crt 文件重新生成 keystore.jks 文件

tomcat - 在与已升级到 TLS 1.1 的 API 对话的 Grails 前端应用程序上出现握手错误

java - ServletContextListener 错误

java - 从其他应用打开 Tumblr 应用上的博客

java - 在 HttpURLConnection 上设置 FollowRedirects 的实例值

java - tomcat向Web服务器的所有实例发送相同的请求

tomcat - 使用 Mule ESB 将数据公开为 ODATA API

java - JSP 中的隐藏输入在将其传递给 servlet 时会产生 null