我使用tomcat5.32 + cpanel。
我的代码是:
<%
String path = application.getRealPath("");
path +="/as.txt" ;
FileOutputStream fos = new FileOutputStream(path);
fos.write("this is test ?".getBytes());
fos.flush();
fos.close();
%>
请求时出现此错误:
java.io.FileNotFoundException: /home/domainname/public_html/ROOT/as.txt (Permission denied)
java.io.FileOutputStream.open(Native Method)
java.io.FileOutputStream.<init>(FileOutputStream.java:179)
java.io.FileOutputStream.<init>(FileOutputStream.java:70)
org.apache.jsp.newjsp2_jsp._jspService(newjsp2_jsp.java:61)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
perms是0644,但我的程序无法写入自己的文件。
请帮帮我
答案 0 :(得分:1)
错误非常明显,
您的许可,0644
仅向拥有文件的用户添加Read/Write
权限。或
使您的Tomcat用户成为所有者,或将用户包括在文件组中并应用权限0664
。
答案 1 :(得分:0)
1)确保尝试写入此文件的“用户”实际上具有权限。写入磁盘的JVM可能不会使用与启动JVM的用户相同的权限。
2)在尝试写入文件之前,确保该dir路径的所有步骤都存在。