Sto tentando di utilizzare l'API Blobstore per appengine usando GWT ... Ti prometto! L'ho fatto funzionare per mesi e improvvisamente ho iniziato ottenere i seguenti errori .. arfter eseguendo la riga seguente da un servelet.GWT Blobstore errore di chiamata createUploadUrl()
public class ImageServiceImpl estende RemoteServiceServlet implementa ImageService {
/**
*
*/
private static final long serialVersionUID = 1L;
// init the blog store service
private BlobstoreService blobService = BlobstoreServiceFactory.getBlobstoreService();
//private static final Logger log = Logger.getLogger(ImageServiceImpl.class);
public static final String PATH_TO_DEFAULT_IMAGE = "images/no_photo.jpg";
. . . . . // omesse per brevità }
@Override
public String getUpLoadPath() {
String url = blobService.createUploadUrl("/n5/doimage");
return url;
}
}
inizializzazione App Engine server di 19 settembre 2011 19:28:45 com.google.apphosting.utils.jetty.JettyLogger informazioni INFO: Accesso a JettyLogger (null) tramite com.google.apphosting.utils.jetty.JettyLogger set 19, 2011 7:28:45 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml INFO: Elaborazione C: \ elaborata con successo \ n5 \ n5 \ war \ WEB-INF/appengine-web.xml set 19, 2011 7:28:45 PM com.google.apph osting.utils.config.AbstractConfigXmlReader readConfigXml INFO: Elaborato con successo C: \ development \ n5 \ n5 \ war \ WEB-INF/web.xml set 19, 2011 3:28:47 PM com.google.appengine.tools. development.DevAppServerImpl iniziare INFORMAZIONI: Il server è in esecuzione a http://localhost:8888/ 19 set 2011 19:34:59 com.google.appengine.tools.development.ApiProxyLocalImpl login GRAVI: javax.servlet.ServletContext login: eccezione durante dispacciamento in entrata Chiamata RPC com.google.gwt.user.server.rpc.UnexpectedException: metodo di servizio 'public abstract java.lang.String com.six.n5.client.service.ImageService.getUpLoadPath()' ha generato un'eccezione imprevista: java. lang.VerifyError: class com.google.appengine.api.blobstore.BlobstoreServicePb $ CreateUploadURLRequest esegue l'override del metodo finale isInitialized.() Z all'indirizzo com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure (RPC.java:385) all'indirizzo com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse (RPC.java:588) presso com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall (RemoteServiceServlet.java:208) all'indirizzo com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost (RemoteServiceServlet.java:248) presso com. google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost (AbstractRemoteServiceServlet.java:62) all'indirizzo javax.servlet.http.HttpServlet.service (HttpServlet.java:637) all'indirizzo javax.servlet.http.HttpServlet.service (HttpServlet.java:717) all'indirizzo com.google.inject.servlet.ServletDefinition.doService (ServletDefinition.java:216) all'indirizzo com.google.inject.servlet.ServletDefinition.service (ServletDefinition.java:141) a com.google.inject.servlet.ManagedServletPipeline.service (ManagedServletPipeline.java:93) a com.google.inject.servlet.FilterChainInvocation.doFilter (FilterChainInvocation.java:63) in com. google.inject.servlet.ManagedFilterPipeline.dispatch (ManagedFilterPipeline.java:122) in com.google.inject.servlet.GuiceFilter.doFilter (GuiceFilter.java:110) in org.mortbay.jetty.servlet.ServletHandler $ cache in cache. doFilter (ServletHandler.java:1157) su com.google.appengine.tools.development.HeaderVerificationFilter.doFilter (HeaderVerificationFilter.java:35) all'indirizzo org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java: 1157) all'indirizzo com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter (ServeBlobFilter.java:58) all'indirizzo org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) su com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java: 43) a org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) a com.google.appengine.tools.development.StaticFileFilter.doFilter (StaticFileFilter.java:122) a org. mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) all'indirizzo com.google.appengine.tools.development.BackendServersFilter.doFilter (BackendServersFilter.java:97) all'indirizzo org.mortbay.jetty.servlet. ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) all'indirizzo org.mortbay.jetty.servlet.Servl etHandler.handle (ServletHandler.java:388) all'indirizzo org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) all'indirizzo org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:182) all'indirizzo org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:765) all'indirizzo org.mortbay.jetty.webapp.WebAppContext.handle (WebAppContext.java:418) su com.google.apphosting.utils. jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:70) all'indirizzo org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) su com.google.appengine.tools.development.JettyContainerService $ ApiProxyHandler.handle (JettyContainerService.java:351) all'indirizzo org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) in org.mortbay.jetty.Server.handle (Server.java:326) in org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java:542) all'indirizzo org.mortbay.jetty.HttpConnection $ RequestHandler.content (HttpConnection.java:938) all'indirizzo org.mortbay.jetty.HttpParser.parseNext (HttpParser.java:755) all'indirizzo org.mortbay.jetty.HttpParser.parseAvailable (HttpParser.java:218) all'indirizzo org.mortbay.jetty. HttpConnection.handle (HttpConnection.java:404) all'indirizzo org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:409) all'indirizzo org.mortbay.thread.QueuedThreadPool $ PoolThread.run (QueuedThreadPool.java:582) Causato da: java.lang.VerifyError: classe com.google.appengine.api.blobstore.BlobstoreServicePb $ CreateUploadURLRequest esegue l'override del metodo finale isIniti alized.() Z a java.lang.ClassLoader.defineClass1 (metodo natale) a java.lang.ClassLoader.defineClass (fonte sconosciuta) a java.security.SecureClassLoader.defineClass (fonte sconosciuta) a java.net. URLClassLoader.defineClass (fonte sconosciuta) a java.net.URLClassLoader.access $ 100 (Fonte sconosciuta) a java.net.URLClassLoader $ 1.run (Fonte sconosciuta) a java.net.URLClassLoader $ 1.run (Fonte sconosciuta) a java.security.AccessController.doPrivileged (metodo nativo) su java.net.URLClassLoader.findClass (sorgente sconosciuta) a java.lang.ClassLoader.loadClass (sorgente sconosciuta) su com.google.appengine.tools.development. IsolatedAppClassLoader.loadClass (IsolatedA ppClassLoader.java:176) a java.lang.ClassLoader.loadClass (fonte sconosciuta) a com.google.appengine.api.blobstore.BlobstoreServiceImpl.createUploadUrl (BlobstoreServiceImpl.java:43) a com.google.appengine.api .blobstore.BlobstoreServiceImpl.createUploadUrl (BlobstoreServiceImpl.java:34) a com.six.n5.server.ImageServiceImpl.getUpLoadPath (ImageServiceImpl.java:153) a sun.reflect.NativeMethodAccessorImpl.invoke0 (metodo natale) al sole. reflect.NativeMethodAccessorImpl.invoke (sorgente sconosciuta) su sun.reflect.DelegatingMethodAccessorImpl.invoke (sorgente sconosciuta) su java.lang.reflect.Method.invoke (fonte sconosciuta) su com.google.appengine.tools.development.agent .runtime.Runtime.invoke (runtime.java: 100) a com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse (RPC.java:569) ... more 39