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.

Reply via email to