I'm the author of appengine-magic, an App Engine library for Clojure (http://github.com/gcv/appengine-magic). I've had good luck getting several App Engine services working cleanly with Clojure's interactive development environment, including the datastore. Right now, I'm working on the blobstore service, and it's giving me trouble.
I have blobstore uploads working properly inside dev_appserver, but dev_appserver is a suboptimal development experience for a highly dynamic and interactive language like Clojure. In order to make things as smooth as possible, I have to bootstrap the blobstore service by hand. I made the UploadBlobServlet available at /_ah/upload, but that does not seem to be enough. The upload seems to work (at least, it writes the newly-uploaded file to WEB-INF/appengine-generated), but then I get a 500 error (see bottom of message for the stack trace). The same application-level code works in dev_appserver. It would have been very helpful to look at the source code for the Java SDK, because it's difficult to guess where I don't initialize the Jetty servlet environment correctly. The SDK does not seem to be open- source, however. If anyone from Google's App Engine for Java team is reading, I'd appreciate some hints about initializing UploadBlobServlet. Many thanks, Constantine Vetoshev Stack trace: java.lang.IllegalArgumentException: Cannot parse: y=== at com.google.appengine.api.datastore.KeyFactory.stringToKey(KeyFactory.java: 192) at com.google.appengine.api.blobstore.dev.BlobUploadSessionStorage.getKeyForSession(BlobUploadSessionStorage.java: 68) at com.google.appengine.api.blobstore.dev.BlobUploadSessionStorage.loadSession(BlobUploadSessionStorage.java: 49) ... Caused by: com.google.appengine.repackaged.com.google.common.util.Base64DecoderException: Invalid padding byte found in position 1 at com.google.appengine.repackaged.com.google.common.util.Base64.decode(Base64.java: 536) at com.google.appengine.repackaged.com.google.common.util.Base64.decodeWebSafe(Base64.java: 493) at com.google.appengine.api.datastore.KeyFactory.stringToKey(KeyFactory.java: 190) at com.google.appengine.api.blobstore.dev.BlobUploadSessionStorage.getKeyForSession(BlobUploadSessionStorage.java: 68) -- 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-j...@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.