[appengine-java] Re: Development AppEngine server quits with no warnings.
Created an issue for this: http://code.google.com/p/googleappengine/issues/detail?id=4712 -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Query with several filters on same list property potential exploding index problem...
I handle a class MyClass that holds a list property myListProperty. I use the low-level API to query over this class, with a dynamic number of filters over this very single field. Those filters mainly use different kind of operators (inequality filters and in filters). Sample code: Query q = new Query(MyClass); q.addFilter(myListProperty, FilterOperator.IN, oneCollection); q.addFilter(myListProperty, FilterOperator.IN, anotherCollection); q.addFilter(myListProperty, FilterOperator.GREATER_THAN, oneString); q.addFilter(myListProperty, FilterOperator.LESS_THAN, anotherString); When executing this query in dev mode, it generates the following index in datastore-indexes-auto.xml: !-- Used 15 times in query history -- datastore-index kind=MyClass ancestor=false source=auto property name=myListProperty direction=asc/ property name=myListProperty direction=asc/ property name=myListProperty direction=asc/ /datastore-index You got it : this would generate a mega-exploding index problem when in productionÅ Can someone confirm that this kind of index is NOT REQUIRED when executing that query on the actual datastore ? -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Need help trying to solve uploading to blobstore on the server side???
I'm frustrated with the blobstore upload on the server side. I can't seem to figure out whats going wrong. I'm posting the payload below. I need to figure out how to upload on the server side so I can resize a thumb and write the bytes into a blob. I'm using a servlet to setup a task to do the task so I don't get a deadline error. URLFetchService urlFetch = URLFetchServiceFactory.getURLFetchService(); FetchOptions fetchOptions = FetchOptions.Builder.withDefaults().setDeadline(1000.00); HTTPRequest request = new HTTPRequest(url, HTTPMethod.POST, fetchOptions); ... I write the payload below ... I'm testing the upload method and I'm getting an error. ***Header: name=Content-Type value=multipart/form-data; boundary=GoneVerticalBoundaryJ7mxnS1yC16DxAAC **PAYLOAD START** --GoneVerticalBoundaryJ7mxnS1yC16DxAAC Content-Disposition: form-data; name=File; filename=test.txt Content-Type: text/csv thisistextinfile --GoneVerticalBoundaryJ7mxnS1yC16DxAAC-- **END PAYLOAD** [WARN] /_ah/upload/ahNnb25ldmVydGljYWwtbGxjLXYzchwLEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18Y0hcM java.lang.NullPointerException at com.google.appengine.api.blobstore.dev.UploadBlobServlet.handleUpload( UploadBlobServlet.java:380) 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:101) 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:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 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:58) 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:351) 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) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run( SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run( QueuedThreadPool.java:582) Any thoughts would be much appreciated :). Brandon Donnelson http://gwt-examples.googlecode.com -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] ROWID PSEDO Column and queries on rowid
Hi, I have a oracle query using rowid pseudo column, basically to fetch next 10 record each time for pagination. Is there any artifact that is equivalent in datastore ? if not what is my alternative. Appreciate your help. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Could not initialize class PMF
Are you trying to reference PMF in your client side GWT code? This won't work. It has to be in your server side code. This is what the stack trace seems to indicate. If not, I'd say look to make sure PMF is in your classpath. Ikai Lan Developer Programs Engineer, Google App Engine Blog: http://googleappengine.blogspot.com Twitter: http://twitter.com/app_engine Reddit: http://www.reddit.com/r/appengine On Tue, Mar 8, 2011 at 4:58 PM, Laci laszlo.bor...@gmail.com wrote: Hi! I am trying to use the persistancemanagerfactory, and always get the following error. I have searched over the internet for solutions, nothing helped so far. Any help is welcome. I am getting lost. When I try to use the instance, I get the error. PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.currentTransaction().begin(); pm.makePersistent(c); pm.currentTransaction().commit(); } catch (Exception ex) { pm.currentTransaction().rollback(); throw new RuntimeException(ex); } finally { pm.close(); } PMF implementation: import javax.jdo.JDOHelper; import javax.jdo.PersistenceManagerFactory; public final class PMF { private static PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory(transactions-optional); private PMF() {} public static synchronized PersistenceManagerFactory get() { if(pmfInstance == null) { pmfInstance = JDOHelper.getPersistenceManagerFactory( transactions-optional); } return pmfInstance; } } jdconfig.xml: ?xml version=1.0 encoding=utf-8? jdoconfig xmlns=http://java.sun.com/xml/ns/jdo/jdoconfig; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:noNamespaceSchemaLocation=http://java.sun.com/xml/ns/jdo/jdoconfig persistence-manager-factory name=transactions-optional property name=javax.jdo.PersistenceManagerFactoryClass value=org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory/ property name=javax.jdo.option.ConnectionURL value=appengine/ property name=javax.jdo.option.NontransactionalRead value=true/ property name=javax.jdo.option.NontransactionalWrite value=true/ property name=javax.jdo.option.RetainValues value=true/ property name=datanucleus.appengine.autoCreateDatastoreTxns value=true/ /persistence-manager-factory /jdoconfig Error: [ERROR] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void com.reference.client.GreetingService.addCompany(com.reference.shared.Company)' threw an unexpected exception: java.lang.NoClassDefFoundError: Could not initialize class com.reference.server.PMF at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243) at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 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:58) 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
Re: [appengine-java] Could not initialize class PMF
Hi Laci, NoClassDefFoundError can mean one of two things: 1) You really didn't include the class in your webapp, so it can't be found. You should check the classes in WEB-INF/classes and the jars in WEB-INF/lib to make sure com.reference.server.PMF is present. 2) Your PMF class threw an exception in its static initializer the very first time the JVM tried to class load it. If this is the case, there should be an ExceptionInInitializerError somewhere in your logs. In this specific case, something could have failed in your initialization of pmfInstance. On Tue, Mar 8, 2011 at 7:58 PM, Laci laszlo.bor...@gmail.com wrote: Hi! I am trying to use the persistancemanagerfactory, and always get the following error. I have searched over the internet for solutions, nothing helped so far. Any help is welcome. I am getting lost. When I try to use the instance, I get the error. PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.currentTransaction().begin(); pm.makePersistent(c); pm.currentTransaction().commit(); } catch (Exception ex) { pm.currentTransaction().rollback(); throw new RuntimeException(ex); } finally { pm.close(); } PMF implementation: import javax.jdo.JDOHelper; import javax.jdo.PersistenceManagerFactory; public final class PMF { private static PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory(transactions-optional); private PMF() {} public static synchronized PersistenceManagerFactory get() { if(pmfInstance == null) { pmfInstance = JDOHelper.getPersistenceManagerFactory( transactions-optional); } return pmfInstance; } } jdconfig.xml: ?xml version=1.0 encoding=utf-8? jdoconfig xmlns=http://java.sun.com/xml/ns/jdo/jdoconfig; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:noNamespaceSchemaLocation=http://java.sun.com/xml/ns/jdo/jdoconfig persistence-manager-factory name=transactions-optional property name=javax.jdo.PersistenceManagerFactoryClass value=org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory/ property name=javax.jdo.option.ConnectionURL value=appengine/ property name=javax.jdo.option.NontransactionalRead value=true/ property name=javax.jdo.option.NontransactionalWrite value=true/ property name=javax.jdo.option.RetainValues value=true/ property name=datanucleus.appengine.autoCreateDatastoreTxns value=true/ /persistence-manager-factory /jdoconfig Error: [ERROR] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void com.reference.client.GreetingService.addCompany(com.reference.shared.Company)' threw an unexpected exception: java.lang.NoClassDefFoundError: Could not initialize class com.reference.server.PMF at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243) at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 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:58) 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
[appengine-java] Timeout while adding an auto increment column in task queue
Hi all I am using mysql instance of google app engine. I have to add an auto increment column to a table name actions. This table already contains around 2 lacs of records. When i alter this table i am getting following exceptions Exception :class java.sql.SQLException: Timed out. at com.google.appengine.api.rdbms.RdbmsApiProxyClient $ApiProxyBlockingInterface.makeSyncCall(RdbmsApiProxyClient.java:103) at com.google.appengine.api.rdbms.RdbmsApiProxyClient $ApiProxyBlockingInterface.exec(RdbmsApiProxyClient.java:54) at com.google.storage.speckle.jdbc.internal.SpeckleProtoClient.executeSql(SpeckleProtoClient.java: 80) at com.google.storage.speckle.jdbc.internal.SpeckleProtoClient.executeSql(SpeckleProtoClient.java: 71) at com.google.storage.speckle.jdbc.SpeckleConnection.executeSql(SpeckleConnection.java: 400) at com.google.storage.speckle.jdbc.SpecklePreparedStatement.executeSqlImpl(SpecklePreparedStatement.java: 99) at com.google.storage.speckle.jdbc.SpeckleStatement.executeImpl(SpeckleStatement.java: 118) at com.google.storage.speckle.jdbc.SpeckleStatement.executeUpdateImpl(SpeckleStatement.java: 231) at com.google.storage.speckle.jdbc.SpeckleStatement.executeUpdate(SpeckleStatement.java: 241) I am executing the following query: Connection connection = ConnectionManager.getConnection(database); connection1.setAutoCommit(true); String updateQuery = alter table actions modify column _autoincrement_ bigint(20) unsigned auto_increment unique; PreparedStatement stmt = connection1.prepareStatement(updateQuery); stmt.executeUpdate(updateQuery, Statement.NO_GENERATED_KEYS); I am executing these lines in task queue. Its run fine on local server. Regards Rick -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Could not initialize class PMF
Hi! Everything is in place, and I could come over this error, but the app is stil not working, got the following error message: [WARN] /reference/greet javax.jdo.JDOFatalInternalException: No resources could be found to annotate error message key:MSG_NestedThrowablesStackTrace at javax.jdo.spi.I18NHelper.assertBundle(I18NHelper.java:269) at javax.jdo.spi.I18NHelper.msg(I18NHelper.java:147) at javax.jdo.JDOException.printStackTrace(JDOException.java:266) at com.google.apphosting.utils.jetty.AppEngineWebAppContext$AppEngineServletContext.log(AppEngineWebAppContext.java:75) at com.google.gwt.user.server.rpc.RPCServletUtils.writeResponseForUnexpectedFailure(RPCServletUtils.java:344) at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doUnexpectedFailure(AbstractRemoteServiceServlet.java:110) at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:67) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 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:58) 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) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [WARN] /reference/greet javax.jdo.JDOFatalInternalException: No resources could be found to annotate error message key:MSG_NestedThrowablesStackTrace at javax.jdo.spi.I18NHelper.assertBundle(I18NHelper.java:269) at javax.jdo.spi.I18NHelper.msg(I18NHelper.java:147) at javax.jdo.JDOException.printStackTrace(JDOException.java:266) at com.google.gwt.dev.util.log.PrintWriterTreeLogger.doLog(PrintWriterTreeLogger.java:88) at com.google.gwt.dev.util.log.AbstractTreeLogger.log(AbstractTreeLogger.java:213) at com.google.gwt.core.ext.TreeLogger.log(TreeLogger.java:281) at com.google.appengine.tools.development.gwt.AppEngineLauncher$LogAdapterHandler.publish(AppEngineLauncher.java:240) at java.util.logging.Logger.log(Unknown Source) at java.util.logging.Logger.doLog(Unknown Source) at java.util.logging.Logger.log(Unknown Source) at com.google.apphosting.utils.jetty.JettyLogger.warn(JettyLogger.java:58) at org.mortbay.log.Log.warn(Log.java:196) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:458) 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
[appengine-java] Re: Development AppEngine server quits with no warnings.
I'm also experiencing the exact same problem. I verified on two different macs. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Need help trying to solve uploading to blobstore on the server side???
Wow, so far I got it working. So it is possible to do it on the server side. I had to fix request url to be absolute instead of relative, or at least I thought I had it fixed, and wasn't. Here is what I am doing so far: private void upload2_A(long fileThingId, long stuffId, String fileName, String contentType, byte[] filebytes) { String base = sp.getUrl(true); String surl = BlobstoreServiceFactory.getBlobstoreService().createUploadUrl(/upload); surl = base + surl; URL url = null; try { url = new URL(surl); } catch (MalformedURLException e) { log.warning(BlobJdo.upload2_A() Error, could not setup url + e.toString()); e.printStackTrace(); } String boundary = createBoundary(); URLFetchService urlFetch = URLFetchServiceFactory.getURLFetchService(); FetchOptions fetchOptions = FetchOptions.Builder.withDefaults().setDeadline(1000.00); HTTPRequest request = new HTTPRequest(url, HTTPMethod.POST, fetchOptions); request.addHeader(new HTTPHeader(Content-Type, multipart/form-data; boundary= + boundary)); request.addHeader(new HTTPHeader(Cookie, sp.getHeader(Cookie))); //request.addHeader(new HTTPHeader(Host, 127.0.0.1:)); //request.addHeader(new HTTPHeader(Origin, http://127.0.0.1:;)); //request.addHeader(new HTTPHeader(User-Agent, Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.19.4 (KHTML, like Gecko ))); //request.addHeader(new HTTPHeader(Referer, http://127.0.0.1:/index.html?gwt.codesvr=127.0.0.1:9997;)); //request.addHeader(new HTTPHeader(Accept, application/xml ,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png ,*/*;q=0.5)); //request.addHeader(new HTTPHeader(Accept-Language, en-us)); //request.addHeader(new HTTPHeader(Accept-Encoding, gzip, deflate)); //request.addHeader(new HTTPHeader(Connection, keep-alive)); ByteArrayOutputStream out = new ByteArrayOutputStream(); write(out, -- + boundary + \r\n); writeParameter(out, oid, Long.toString(sp.getUserThingId())); write(out, -- + boundary + \r\n); writeParameter(out, tid, Long.toString(fileThingId)); write(out, -- + boundary + \r\n); writeImage(out, fileName, contentType, filebytes); write(out, -- + boundary + --\r\n); // end boundary int len = out.toByteArray().length; request.addHeader(new HTTPHeader(Content-Length, + len)); request.setPayload(out.toByteArray()); // debug echo(request.getHeaders()); echo(request.getPayload()); // send request HTTPResponse res = null; try { res = urlFetch.fetch(request); } catch (IOException e) { e.printStackTrace(); } if (res == null) { log.warning(BlobJdo.Upload2_A() could not setup urlfetch); return; } InputStream in = new ByteArrayInputStream(res.getContent()); int data; try { data = in.read(); while(data != -1) { data = in.read(); } in.close(); } catch (IOException e) { log.warning(BlobJdo.Upload2_A() data write out error + e.toString()); e.printStackTrace(); } } private String getRandomStr() { return Long.toString(random.nextLong(), 36); } private String createBoundary() { return GoneVerticalBoundary + getRandomStr() + getRandomStr(); } private void write(OutputStream os, String s) { try { os.write(s.getBytes()); } catch (IOException e) { e.printStackTrace(); } } private void writeParameter(OutputStream os, String key, String value) { write(os, Content-Disposition: form-data; name=\ + key + \\r\n\r\n+ value + \r\n); } private void writeImage(OutputStream os, String fileName, String contentType, byte[] image) { write(os, Content-Disposition: form-data; name=\File\; filename=\ + fileName + \\r\n); write(os, Content-Type: + contentType + \r\n\r\n); try { os.write(image); } catch (IOException e) { e.printStackTrace(); } write(os, \r\n); } private void echo(ListHTTPHeader headers) { if (headers == null) { return; } IteratorHTTPHeader it = headers.iterator(); while (it.hasNext()) { HTTPHeader h = it.next(); String hh = h.getName(); String vv = h.getValue(); System.out.println(***Header: hh= + hh + vv= + vv); } } private void echo(byte[] b) { if (b == null) { System.out.println(Why is this null); return; } System.out.println(**PAYLOAD START**); //byte[] b = baos.toByteArray(); InputStream in = new ByteArrayInputStream(b); int data; try { data = in.read(); while(data != -1) { System.out.print((char)data); data = in.read(); } in.close(); } catch (IOException e) {