在Java/Springboot-Tomcat中创建文件时出现权限被拒绝错误
我试图在Java/SpringBoot中创建一个文件,并使用FileWriter方法对其进行写入。 下面是我的代码在Java/Springboot-Tomcat中创建文件时出现权限被拒绝错误,java,linux,spring,spring-boot,tomcat,Java,Linux,Spring,Spring Boot,Tomcat,我试图在Java/SpringBoot中创建一个文件,并使用FileWriter方法对其进行写入。 下面是我的代码 String filename = file.csv; LOGGER.info("Creating File CSV"); File file = new File(filename); Boolean Isexists =file.e
String filename = file.csv;
LOGGER.info("Creating File CSV");
File file = new File(filename);
Boolean Isexists =file.exists();
boolean isexistsabs = file.getAbsoluteFile().exists();
LOGGER.info("CSV File Exists? : "+Isexists);
LOGGER.info("CSV File ABSExists? : "+isexistsabs);
boolean setwritable = file.setWritable(true);
LOGGER.info("SetWritable CSV Output : "+Boolean.toString(setwritable));
boolean setExecutable = file.setExecutable(true);
LOGGER.info("SetExecutable CSV Output : "+Boolean.toString(setExecutable));
LOGGER.info("before file Writer CSV");
FileWriter filewriter = new FileWriter(filename);
LOGGER.info("after file Writer CSV");
LOGGER.info("Writing File CSV");
String content ="Some CSV Content";
filewriter.write(content);
LOGGER.info("Written to File CSV");
filewriter.close();
LOGGER.info("Closing File CSV");
当我在本地系统中执行代码时,它正在工作,下面是代码的日志
2020-07-28 00:56:17.204 INFO 15956 --- Controller : Creating File CSV
2020-07-28 00:56:17.205 INFO 15956 --- Controller : CSV File Exists? : true
2020-07-28 00:56:17.206 INFO 15956 --- Controller : CSV File ABSExists? : true
2020-07-28 00:56:17.206 INFO 15956 --- Controller : SetWritable CSV Output : true
2020-07-28 00:56:17.207 INFO 15956 --- Controller : SetExecutable CSV Output : true
2020-07-28 00:56:17.207 INFO 15956 --- Controller : before file Writer CSV
2020-07-28 00:56:17.208 INFO 15956 --- Controller : after file Writer CSV
2020-07-28 00:56:17.209 INFO 15956 --- Controller : Writing File CSV
2020-07-28 00:56:17.209 INFO 15956 --- Controller : Written to File CSV
2020-07-28 00:56:17.210 INFO 15956 --- Controller : Closing File CSV
但是,当我在部署到tomcat服务器后执行相同操作时,下面是我收到的日志/错误
2020-07-27 14:34:15.465 INFO 17902 --- Controller : Creating File CSV
2020-07-27 14:34:15.465 INFO 17902 --- Controller : CSV File Exists? : false
2020-07-27 14:34:15.465 INFO 17902 --- Controller : CSV File ABSExists? : false
2020-07-27 14:34:15.466 INFO 17902 --- Controller : SetWritable CSV Output : false
2020-07-27 14:34:15.466 INFO 17902 --- Controller : SetExecutable CSV Output : false
2020-07-27 14:34:15.466 INFO 17902 --- Controller : before file Writer CSV
2020-07-27 14:34:15.488 ERROR 17902 --- [http-nio-8080-exec-31] o.s.b.w.servlet.support.ErrorPageFilter : Forwarding to error page from request [/api/getFlighPlanCSV] due to exception [file.csv (Permission denied)]
java.io.FileNotFoundException: file.csv (Permission denied)
at java.base/java.io.FileOutputStream.open0(Native Method) ~[na:na]
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:291) ~[na:na]
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:234) ~[na:na]
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:123) ~[na:na]
at java.base/java.io.FileWriter.<init>(FileWriter.java:66) ~[na:na]
at com.aiknights.com.rapidviewmain.controller.SiteInspectionController.DownloadFlightPlan(SiteInspectionController.java:175) ~[classes/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE]
我会回答任何关于设置和代码的更多细节的问题
非常感谢您提供的任何帮助,因为我已经花了太多的时间来处理这个问题。请确保您已经阅读并执行了对所有父目录的访问 例如:
chmod o+x /opt
确保您还具有对所有父目录的读取和执行访问权限 例如:
chmod o+x /opt
您需要查看应用程序使用的用户,并确保其具有访问该文件的权限。这显然是unix文件系统权限问题,代码没有问题。您可能遗漏了一些内容。您需要查看应用程序使用的用户,并确保其具有访问该文件的权限。这显然是unix文件系统权限问题,代码没有问题。你可能遗漏了什么。