尝试在本地上传到Blobstore的OutOfMemoryError

时间:2010-06-08 00:08:49

标签: google-app-engine blobstore

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

警告:/ _ah / upload /出错 aghvbWdkcmVzc3IcCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGMACDA java.lang.OutOfMemoryError:Java堆空间         at java.util.Arrays.copyOf(Arrays.java:2786)         at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:71)         在 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)         at 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.servlet.http.HttpServlet.service(HttpServlet.java:806)         在org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 511);

我在Eclipse上使用了Memory Analyzer,它说内存泄漏了 怀疑是QueuedThreadPool。我找到了关于记忆的这些信息 泄漏错误:

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

还有其他人有这个问题吗?

谢谢, 让

3 个答案:

答案 0 :(得分:6)

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

请参阅:Uploading to Blobstore gives a Java heap OutOfMemoryError

解决后,您应该能够上传任何大小的文件。

答案 1 :(得分:0)

开发服务器可能会在上传和处理文件时将文件保留在内存中。生产服务器上的情况并非如此。

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

答案 2 :(得分:0)

我在开发服务器上获取任何文件大小。