2011-09-27 183 views
-1

我使用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) 

的烫发是0644,但我的程序不能在自己的文件写入。

请帮我

+2

ROOT目录的所有者与运行tomcat服务器的用户相同吗? – Tobi

回答

1

的错误是很清楚,你权限的文件。

您的同意,0644增加Read/Write权限只对用户拥有该文件。 使Tomcat用户成为拥有者,或者将用户包含到文件组中并应用权限0664

+0

我应用权限0664.但尚未获得权限错误。 –

+0

@ amir2,你确定Tomcat用户是该文件所属组的成员吗? –

+0

我的主机管理员说:tomcat用户是无人组的成员.root @ panther [〜]#groups tomcat tomcat:nobody, 什么是无人组? –

0

1)确保试图写入该文件的'用户'实际上拥有权限。写入磁盘的JVM可能不会使用与启动JVM的用户相同的权限。

2)确保在试图写入文件之前,该目录路径的所有步骤实际存在。

+0

嗨文件存在。如何查找JVM权限?谢谢 –