找不到临时文件的文件异常

我正在构建Java应用程序(Spring和JSF&PrimeFaces)。我将文件上传到服务器,但是,如果在文件上传结束后立即单击“下一步”按钮,则会出现此错误:

Aug 24, 2013 8:12:34 PM org.apache.catalina.core.StandardWrapperValve invoke

SEVERE: Servlet.service() for servlet [appServlet] in context with path [/codekata] threw exception [Request processing failed; nested exception is org.springframework.webflow.execution.repository.FlowExecutionRestorationFailureException: A problem occurred restoring the flow execution with key 'e1s3'] with root cause

java.io.FileNotFoundException: C:\Users\Luke\AppData\Local\Temp\upload__6f71235a_140b1bdd246__8000_00000011.tmp (The system cannot find the file specified)

at java.io.FileInputStream.open(Native Method)

at java.io.FileInputStream.<init>(FileInputStream.java:138)

at org.apache.commons.fileupload.disk.DiskFileItem.readObject(DiskFileItem.java:709)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)

at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1891)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)

java.lang.Thread.run(Thread.java:722)

如果我等待几秒钟,一切正常。我认为上载文件需要时间才能将其自身复制到临时文件夹中,是否有人知道如何解决此问题。我使用Tomcat 7。

这是我的下载方法:

public StreamedContent getDownloadFile()

{

InputStream inputStream = new ByteArrayInputStream(selectedBook.getBookText().getText().getBytes());

return new DefaultStreamedContent(inputStream, "text/plain", selectedBook.getTitle() + ".txt", BookBean.encoding);

}

谢谢,卢克。

回答:

基于堆栈跟踪,看起来您将UploadedFile实例存储为类本身的属性Serializable。这个不对。您应该

使用<p:fileUpload handleFileUpload>文件上载侦听器方法(或使用提交按钮<p:fileUpload

mode="simple">)来获取上载的文件内容。将其存储在更永久的位置。例如,本地磁盘文件系统或数据库,甚至可能作为byte[]bean属性。然后传递本地磁盘文件系统的文件名,数据库PK或byte[]周围的名称,以便可以下载文件。

总而言之,只需确保您的Serializablebacking bean完全没有UploadedFile属性,并且此问题将消失。

以上是 找不到临时文件的文件异常 的全部内容, 来源链接: utcz.com/qa/416798.html

回到顶部