4

ブロブストアへの基本的なファイル アップロードをセットアップしようとしていますが、次の OutOfMemoryError が発生します。

警告: /_ah/upload/ aghvbWdkcmVzc3IcCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGMACDA java.lang.OutOfMemoryError のエラー: java.util.Arrays.copyOf(Arrays.java:2786) の Java ヒープ領域 java.io.ByteArrayOutputStream.write(ByteOutputStream.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.com.google.appengine.api.blobstore.dev.UploadBlobServlet.doPost(UploadBlobServlet.java: 98) の AccessController.doPrivileged(ネイティブ メソッド) javax.servlet.http.HttpServlet.service(HttpServlet.java:713) の javax. servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 511);

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 に答える