在我的项目中,我创建了一个 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
最佳答案
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/