我正在尝试使用 GWT 将 Blobstore api 用于 appengine ......
我答应你!我让它工作了几个月,突然间我开始了
得到以下错误.. 执行以下行后
一个小服务器。
公共(public)类 ImageServiceImpl 扩展 RemoteServiceServlet 实现 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";
.
.
.
.
.
//为简洁起见省略
}
@Override
public String getUpLoadPath() {
String url = blobService.createUploadUrl("/n5/doimage");
return url;
}
}
初始化 App Engine 服务器
2011 年 9 月 19 日晚上 7:28:45 com.google.apphosting.utils.jetty.JettyLogger 信息
信息:通过 com.google.apphosting.utils.jetty.JettyLogger 登录到 JettyLogger(null)
2011 年 9 月 19 日下午 7:28:45 com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
信息:已成功处理 C:\development\n5\n5\war\WEB-INF/appengine-web.xml
2011 年 9 月 19 日晚上 7:28:45 com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
信息:成功处理 C:\development\n5\n5\war\WEB-INF/web.xml
2011 年 9 月 19 日下午 3:28:47 com.google.appengine.tools.development.DevAppServerImpl 开始
信息:服务器运行在
http://localhost:8888/
2011 年 9 月 19 日下午 7:34:59 com.google.appengine.tools.development.ApiProxyLocalImpl 日志
严重:javax.servlet.ServletContext 日志:调度传入的 RPC 调用时出现异常
com.google.gwt.user.server.rpc.UnexpectedException:服务方法“public abstract java.lang.String com.six.n5.client.service.ImageService.getUpLoadPath()”引发了意外异常:java.lang.VerifyError :类 com.google.appengine.api.blobstore.BlobstoreServicePb$CreateUploadURLRequest 覆盖 final方法 isInitialized.()Z
在 com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
在 com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
在 com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
在 com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
在 com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
在 javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
在 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
在 com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:216)
在 com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:141)
在 com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93)
在 com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:63)
在 com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122)
在 com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110)
在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
在 com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
在 com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
在 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
在 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
在 com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
在 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
在 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
在 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
在 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
在 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
在 com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
在 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
在 com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351)
在 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
在 org.mortbay.jetty.Server.handle(Server.java:326)
在 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
在 org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
在 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
在 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
引起:java.lang.VerifyError: class com.google.appengine.api.blobstore.BlobstoreServicePb$CreateUploadURLRequest 覆盖 final方法 isInitialized.()Z
在 java.lang.ClassLoader.defineClass1(Native Method)
在 java.lang.ClassLoader.defineClass(Unknown Source)
在 java.security.SecureClassLoader.defineClass(Unknown Source)
在 java.net.URLClassLoader.defineClass(Unknown Source)
在 java.net.URLClassLoader.access$100(来源不明)
在 java.net.URLClassLoader$1.run(Unknown Source)
在 java.net.URLClassLoader$1.run(Unknown Source)
在 java.security.AccessController.doPrivileged(Native Method)
在 java.net.URLClassLoader.findClass(Unknown Source)
在 java.lang.ClassLoader.loadClass(来源不明)
在 com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:176)
在 java.lang.ClassLoader.loadClass(来源不明)
在 com.google.appengine.api.blobstore.BlobstoreServiceImpl.createUploadUrl(BlobstoreServiceImpl.java:43)
在 com.google.appengine.api.blobstore.BlobstoreServiceImpl.createUploadUrl(BlobstoreServiceImpl.java:34)
在 com.six.n5.server.ImageServiceImpl.getUpLoadPath(ImageServiceImpl.java:153)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
在 java.lang.reflect.Method.invoke(Unknown Source)
在 com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
在 com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
... 39 更多
我是一名优秀的程序员,十分优秀!