【发布时间】:2011-09-19 19:45:44
【问题描述】:
我正在尝试使用 GWT 将 Blobstore api 用于 appengine... 我答应你!我让它工作了几个月,突然我开始了 得到以下错误..在执行以下行之后 一个小服务程序。
公共类 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 读取AppEngineWebXml INFO: 成功处理 C:\development\n5\n5\war\WEB-INF/appengine-web.xml 2011 年 9 月 19 日晚上 7:28:45 com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml INFO: 成功处理 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 覆盖最终方法 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:com.google.appengine.api.blobstore.BlobstoreServicePb$CreateUploadURLRequest 类覆盖最终方法 isInitialized.()Z 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(未知来源) 在 java.security.SecureClassLoader.defineClass(未知来源) 在 java.net.URLClassLoader.defineClass(未知来源) 在 java.net.URLClassLoader.access$100(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 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(未知来源) 在 com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) 在 com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569) ... 39 更多
【问题讨论】: