2011-09-27 131 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權限?謝謝 –