2013-05-14 204 views
7

我嘗試從tomcat 7.0應用程序寫入一個臨時文件。它失敗:在tomcat 7.0中寫入臨時文件失敗

servlet代碼片段:

File formFile = File.createTempFile("document", ".pdf"); 

異常

java.io.IOException: No such file or directory 
    at java.io.UnixFileSystem.createFileExclusively(Native Method) 
    at java.io.File.createTempFile(File.java:1879) 
    at java.io.File.createTempFile(File.java:1923) 
    at goGet(ServletTest.java:20)} 

我猜的catalina.policy是在路上。 如何爲Web應用程序啓用臨時文件?

+2

您應該**從不**在您的Tomcat文件夾安裝中創建文件,也不要在您的Web應用程序文件夾的某個路徑中創建文件。您應該有一個專用文件夾來存儲這些文件,以及一個* temp *文件夾,您將在其中存儲臨時文件。 – 2013-05-14 16:38:37

+0

爲什麼我不應該使用JDK方法創建臨時文件? – user2088476 2013-05-14 16:41:08

+1

我從來沒有說過你不使用JDK來創建臨時文件。我說過,你不能創建它們,也不能在你的tomcat文件夾安裝,也不要在你的web應用程序部署文件夾中(也不在它的任何子文件夾中)創建它們。在這些文件夾之外的磁盤中的某處創建一個文件夾,爲用戶提供足夠的權限來創建新文件,然後在那裏創建新文件。 – 2013-05-14 16:57:55

回答

2

我自己發現了這個問題:tomcat中缺少temp目錄。

4

Tomcat缺少臨時目錄。

上面的問題已通過在tomcat基目錄(cataline_home目錄)中創建一個臨時目錄在tomcat上得到修復。

+0

從哪個版本開始? – user2088476 2015-08-24 13:04:17