2013-05-14 57 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