मैं अपने Google ऐप इंजन एप्लिकेशन में एक बहुत ही सरल अपलोड फॉर्म कर रहा हूं। ग्राहक GWT कोड में मैं की तरह कुछ है:ब्लॉबस्टोर पर अपलोड करने से जावा हेप आउटऑफमेमरी एरर
final FormPanel uploadForm = new FormPanel();
uploadForm.setEncoding(FormPanel.ENCODING_MULTIPART);
uploadForm.setMethod(FormPanel.METHOD_POST);
uploadBtn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
blobstoreUploadURLService.getBlobstoreUploadURL("/banzai/process-pdf", new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
System.err.println("FAILURE DURING UPLOAD SERVICE");
}
@Override
public void onSuccess(String result) {
uploadForm.setAction(result);
uploadForm.submit();
}
});
}
});
और यह एक new FileUpload()
का उपयोग करता है फ़ाइल का चयन करने के लिए। जब मैं परीक्षण करते हैं, तो स्थानीय या तैनात उदाहरण पर, मैं लॉग में निम्न त्रुटि मिलती है:
WARNING: Error for /_ah/upload/agdrYnNrYWFychsLEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18YAww java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2786)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:71)
at javax.mail.internet.MimeMultipart.readTillFirstBoundary(MimeMultipart.java:316)
at javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:186)
at javax.mail.internet.MimeMultipart.getCount(MimeMultipart.java:109)
at com.google.appengine.api.blobstore.dev.UploadBlobServlet.handleUpload(UploadBlobServlet.java:135)
at com.google.appengine.api.blobstore.dev.UploadBlobServlet.access$000(UploadBlobServlet.java:72)
at com.google.appengine.api.blobstore.dev.UploadBlobServlet$1.run(UploadBlobServlet.java:100)
at java.security.AccessController.doPrivileged(Native Method)
at com.google.appengine.api.blobstore.dev.UploadBlobServlet.doPost(UploadBlobServlet.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
दिलचस्प बात यह कई लोगों के सामने (सिर्फ this issue here को देखो इस मुद्दे में चलाने गए हैं लगता है, और आप Google पर कुछ और मिल सकते हैं) लेकिन किसी को भी यह नहीं लगता कि यह क्यों हो रहा है, और कुछ लोग यह भी ऐप इंजन की गलती का सुझाव दे रहे हैं। इससे पहले कि मैं इस तरह के दांत निष्कर्षों पर कूद गया, मैंने सोचा कि मैं पहले यहां पूछूंगा :)
और यदि यह दिलचस्प है, तो यहां प्रयास किए गए अपलोड (एक बहुत छोटी फ़ाइल) के HTTP शीर्षलेख हैं, जो HTTP लाइव हेडर के साथ कैप्चर किए गए हैं।
POST /_ah/upload/AMmfu6ZyyhSgz9uOR5VX4QBZeYADTB-aSejVvfGaogl3E_E8yPOLgtX9-0mob17IYfsaRZg-YP7aZrp1D4pDAwuKKm9CoNjeVx1eN2PwBro9x0PqXPeBLpQ/ALBNUaYAAAAATDFOaLPIvuEEhSS6F4HxMmf9xOb8lp0y/ HTTP/1.1 Host: kbskaar.appspot.com User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://kbskaar.appspot.com/ Cookie: Lastname=Wong; Firstname=Ka%20Man%20Sophia; Username=kmswong%40uwaterloo.ca Content-Type: multipart/form-data; boundary=---------------------------168072824752491622650073 Content-Length: 57 -----------------------------168072824752491622650073-- HTTP/1.1 500 Internal Server Error Server: Upload Server Built on Jul 1 2010 15:26:59 (1278023219) Content-Type: text/html; charset=UTF-8 X-AppEngine-Estimated-CPM-US-Dollars: $0.375815 X-AppEngine-Resource-Usage: ms=7103 cpu_ms=16217 api_cpu_ms=0 Date: Mon, 05 Jul 2010 03:06:00 GMT Pragma: no-cache Expires: Fri, 01 Jan 1990 00:00:00 GMT Cache-Control: no-cache, no-store, must-revalidate Content-Length: 3211 ----------------------------------------------------------
यदि आपके कोई विचार हैं तो कृपया मुझे बताएं। धन्यवाद!
कैसे बड़ी फाइल अपलोड किए जा रहे है यह सुनिश्चित कर लें? – markovuksanovic
@markovuksanovic यह किसी भी आकार की फ़ाइलों के लिए होता है, यहां तक कि 10KB से कम फ़ाइलें भी। यह निश्चित रूप से मामला नहीं है कि मैं बस बहुत अधिक अपलोड कर रहा हूं - यह वही बात थी जो मैंने सोचा था, बिल्कुल :) :) –
इसके अलावा, आप उपरोक्त कोड सूची में फ़ाइल की पूरी सामग्री देख सकते हैं। यह 57 बाइट्स है। –