2013-03-05 82 views
0

我正在使用GWT 2.4,GAE 1.7.2和appengine-remote-api-1.7.2.jar.when我试图访问我部署的应用程序数据存储在我部署的不同应用程序上。国防部开发它的工作,但在部署应用程式及其给在谷歌应用程序引擎中的错误如下GAE remote api获取NoClassDefFoundError

java.lang.NoClassDefFoundError: com/google/appengine/tools/remoteapi/RemoteApiOptions 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2406) 
at java.lang.Class.getConstructor0(Class.java:2716) 
at java.lang.Class.newInstance0(Class.java:343) 
at java.lang.Class.newInstance(Class.java:325) 
at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153) 
at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428) 
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) 
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.Server.handle(Server.java:326) 
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) 
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146) 
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:447) 
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454) 
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461) 
at com.google.tracing.TraceContext.runInContext(TraceContext.java:703) 
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338) 
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330) 
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458) 
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) 
at java.lang.Thread.run(Thread.java:679) 
    Caused by: java.lang.ClassNotFoundException:   com.google.appengine.tools.remoteapi.RemoteApiOptions 
at com.google.appengine.runtime.Request.process-40e88cc1b5a9d01b(Request.java) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2406) 
at java.lang.Class.getConstructor0(Class.java:2716) 
at java.lang.Class.newInstance0(Class.java:343) 
at java.lang.Class.newInstance(Class.java:325) 
at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153) 
at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428) 
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) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.Server.handle(Server.java:326) 
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454) 
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461) 
at com.google.tracing.TraceContext.runInContext(TraceContext.java:703) 
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338) 
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedCo 
+0

你复制你的'AppEngine上的远程-API 1.7.2.jar'成'WEB-INF \ lib'文件夹? – Eich 2013-03-05 11:36:23

+0

是的,我已经在WEN-INF \ lib文件夹中放了** appengine-remote-api-1.7.2.jar **。 – 2013-03-05 11:48:44

回答

1

你可能无法在一个servlet场景中使用这个,因为一个bug的。只需确认解决方法是否有帮助。

此外,参考Google App Engine Remote Api

+0

谢谢** SSR **我只是把我的代码放在RPC中,而不是它的工作方式。它意味着GAE Remote Api不能与** Servlet和Restlet **一起工作。 – 2013-03-07 13:13:09