Pregunta

Estoy intentando cargar un archivo en GAE mediante la API del almacén de blob. Me estoy haciendo la siguiente excepción cuando se ejecuta el servidor GAE local (modo dev):

WARNING: /_ah/upload/ag10cmlwc2NoZWR1bGVychsLEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18YFQw
java.lang.IllegalStateException: Must call one of set*BlobStorage() first.
 at com.google.appengine.api.blobstore.dev.BlobStorageFactory.getBlobStorage(BlobStorageFactory.java:24)
 at com.google.appengine.api.blobstore.dev.UploadBlobServlet.init(UploadBlobServlet.java:88)
 at javax.servlet.GenericServlet.init(GenericServlet.java:215)
 at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440)
 at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
 at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)

Me postulo GAE 1.3.5 pero he intentado todas las versiones desde GAE 1.3.0 (primera versión con el almacén de blob). Estoy utilizando el GAE experto plugin: http://code.google.com/p / maven-gae-plugin /

Mi forma está escrito en GWT 2.0.4. Actualmente, la forma es sólo un campo de entrada con un archivo de envío.

I recibir la excepción anteriormente después de enviar el formulario. Soy capaz de recuperar con éxito una dirección URL de carga del Servicio de almacén de blob.

Todo funciona bien en GAE. He comprobado que no se introduce nada en el almacén de blob en mi env dev local (a través de la consola de administración dev). Estoy subiendo un archivo CSV que es ~ 1 kb, pero han probado otros tipos de archivos / tamaños también sin éxito (mismos archivos de trabajo en GAE prod).

¿Fue útil?

Solución 2

El problema se debía a que tiene los talones y las pruebas frascos incluidos en la ruta de clase cuando se ejecuta el servidor de aplicaciones prog. Si está utilizando Maven, basta con modificar el alcance de la dependencia:

<dependency>
    <groupId>com.google.appengine</groupId>
    <artifactId>appengine-api-stubs</artifactId>
    <version>${gae.version}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>com.google.appengine</groupId>
    <artifactId>appengine-testing</artifactId>
    <version>${gae.version}</version>
    <scope>test</scope>
</dependency>

Si no está utilizando Maven, asegurarse de que estos frascos no están en su WEB-INF / lib o ruta de clase.

Otros consejos

Cuando llame a su página que genera HTML (usando servlets, JSP, etc.) y las llamadas blobstoreService.createUploadUrl("/upload"); que no puede volver a utilizar esta página varias veces.

Actualizar esta página en un navegador cada vez que desea cargar el archivo.

$ mvn clean gae:run -DskipTest 

funciona para mí

No estoy usando Maven, simplemente Eclipse y los plugins GAE. Además, no me veo ninguna prueba archivos .jar en mi ruta de clase. Me acaba de eliminar la configuración de ejecución en Eclipse y se reinicia y funcionó. Ni idea de lo que salió mal, pero se ha arreglado el problema para mí mientras se ejecuta en modo dev / local.

Si no se usa, pero maven Eclipse con el plugin:

RUN quitar / DEBUG configuración. Para crear una nueva, simplemente haga clic derecho sobre el proyecto y seleccione Ejecutar / depuración como> Aplicación Web

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top