4

我正在尝试设置一个基本文件上传到 blobstore,但我得到了这个 OutOfMemoryError:

警告:/_ah/upload/aghvbWdkcmVzc3IcCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGMACDA java.lang.OutOfMemoryError 出错:java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:71) 处 java.util.Arrays.copyOf(Arrays.java:2786) 处的 Java 堆空间javax.mail.internet.MimeMultipart.readTillFirstBoundary(MimeMultipart.java: 316) 在 javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:186) 在 javax.mail.internet.MimeMultipart.getCount(MimeMultipart.java:109)在 com.google.appengine.api.blobstore.dev.UploadBlobServlet.handleUpload(UploadBlobServlet.java: 135) 在 com.google.appengine.api.blobstore.dev.UploadBlobServlet.access $000(UploadBlobServlet.java:72) 在 com. google.appengine.api.blobstore.dev.UploadBlobServlet $1.run(UploadBlobServlet.java:100) 在 java.security。AccessController.doPrivileged(Native Method) 在 com.google.appengine.api.blobstore.dev.UploadBlobServlet.doPost(UploadBlobServlet.java: 98) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:713) 在 javax。 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 处的 servlet.http.HttpServlet.service(HttpServlet.java:806);

我在 Eclipse 上使用了内存分析器,它说内存泄漏嫌疑人是 QueuedThreadPool。我发现了有关内存泄漏错误的信息:

http://jira.codehaus.org/browse/JETTY-1188

其他人遇到过这个问题吗?

谢谢,让

4

3 回答 3

6

如果有人遇到这种情况,很可能问题实际上是由文件输入字段中缺少“名称”属性引起的。

请参阅:上传到 Blobstore 会产生 Java 堆 OutOfMemoryError

解决此问题后,您应该可以上传任何大小的文件。

于 2011-04-26T12:48:25.180 回答
0

开发服务器很可能在上传和处理文件时将文件保存在内存中。在生产服务器上不是这种情况。

您正在测试的文件有多大?最简单的解决方案是使用较小的文件进行测试。

于 2010-06-08T12:31:46.340 回答
0

我在开发服务器上以任何文件大小得到它。

于 2011-03-09T15:28:46.533 回答