我将现有应用程序升级到java8
中的appengine-web.xml
运行时,并使用最新的Java JDK
重新编译它。我还升级到最新的GAE SDK (1.9.54).
没有编译问题,但是当我部署它时,它会停留在"验证可用性:将在60秒内再次检查。将在60秒内再次检查。" ...云控制台上的日志大约为Memcache
和NoSuchMethod
(com.google.appengine.tools.appstats.StatsProtos):
com.google.apphosting.runtime.jetty9.JettyLogger警告:错误 /_ah/spi/BackendService.getApiConfigs(JettyLogger.java:29) java.lang.NoSuchMethodError: com.google.appengine.tools.appstats.StatsProtos $ RequestStatProto.getDescriptor()LCOM /谷歌/应用服务引擎/重新打包/ COM /谷歌/ protobuf的/描述符$描述符; 在 com.google.appengine.tools.appstats.MemcacheWriter.persist(MemcacheWriter.java:264) 在 com.google.appengine.tools.appstats.MemcacheWriter.commit(MemcacheWriter.java:189) 在 com.google.appengine.tools.appstats.Recording.commit(Recording.java:77) 在 com.google.appengine.tools.appstats.AppstatsFilter.doFilter(AppstatsFilter.java:154) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.runtime.jetty9.SaveSessionFilter.doFilter(SaveSessionFilter.java:37) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 在 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) 在 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 在 com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:297) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) 在org.eclipse.jetty.server.Server.handle(Server.java:534)处 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)at at com.google.apphosting.runtime.jetty9.RpcConnection.handle(RpcConnection.java:219) 在 com.google.apphosting.runtime.jetty9.RpcConnector.serviceRequest(RpcConnector.java:81) 在 com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:108) 在 com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.dispatchServletRequest(JavaRuntime.java:657) 在 com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.dispatchRequest(JavaRuntime.java:619) 在 com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.run(JavaRuntime.java:589) 在 com.google.apphosting.runtime.JavaRuntime $ NullSandboxRequestRunnable.run(JavaRuntime.java:783) 在 com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run(ThreadGroupPool.java:263) 在java.lang.Thread.run(Thread.java:745)错误 /_ah/spi/BackendService.getApiConfigs java.lang.NoSuchMethodError: com.google.appengine.tools.appstats.StatsProtos $ RequestStatProto.getDescriptor()LCOM /谷歌/应用服务引擎/重新打包/ COM /谷歌/ protobuf的/描述符$描述符; 在 com.google.appengine.tools.appstats.MemcacheWriter.persist(MemcacheWriter.java:264) 在 com.google.appengine.tools.appstats.MemcacheWriter.commit(MemcacheWriter.java:189) 在 com.google.appengine.tools.appstats.Recording.commit(Recording.java:77) 在 com.google.appengine.tools.appstats.AppstatsFilter.doFilter(AppstatsFilter.java:154) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.runtime.jetty9.SaveSessionFilter.doFilter(SaveSessionFilter.java:37) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 在 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) 在 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 在 com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:297) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) 在org.eclipse.jetty.server.Server.handle(Server.java:534)处 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)at at com.google.apphosting.runtime.jetty9.RpcConnection.handle(RpcConnection.java:219) 在 com.google.apphosting.runtime.jetty9.RpcConnector.serviceRequest(RpcConnector.java:81) 在 com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:108) 在 com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.dispatchServletRequest(JavaRuntime.java:657) 在 com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.dispatchRequest(JavaRuntime.java:619) 在 com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.run(JavaRuntime.java:589) 在 com.google.apphosting.runtime.JavaRuntime $ NullSandboxRequestRunnable.run(JavaRuntime.java:783) 在 com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run(ThreadGroupPool.java:263) at java.lang.Thread.run(Thread.java:745)来自的未捕获异常 servlet java.lang.NoSuchMethodError: com.google.appengine.tools.appstats.StatsProtos $ RequestStatProto.getDescriptor()LCOM /谷歌/应用服务引擎/重新打包/ COM /谷歌/ protobuf的/描述符$描述符; 在 com.google.appengine.tools.appstats.MemcacheWriter.persist(MemcacheWriter.java:264) 在 com.google.appengine.tools.appstats.MemcacheWriter.commit(MemcacheWriter.java:189) 在 com.google.appengine.tools.appstats.Recording.commit(Recording.java:77) 在 com.google.appengine.tools.appstats.AppstatsFilter.doFilter(AppstatsFilter.java:154) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.runtime.jetty9.SaveSessionFilter.doFilter(SaveSessionFilter.java:37) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1759) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 在 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) 在 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 在 com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:297) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) 在org.eclipse.jetty.server.Server.handle(Server.java:534)处 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)at at com.google.apphosting.runtime.jetty9.RpcConnection.handle(RpcConnection.java:219) 在 com.google.apphosting.runtime.jetty9.RpcConnector.serviceRequest(RpcConnector.java:81) 在 com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:108) 在 com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.dispatchServletRequest(JavaRuntime.java:657) 在 com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.dispatchRequest(JavaRuntime.java:619) 在 com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.run(JavaRuntime.java:589) 在 com.google.apphosting.runtime.JavaRuntime $ NullSandboxRequestRunnable.run(JavaRuntime.java:783) 在 com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run(ThreadGroupPool.java:263) 在java.lang.Thread.run(Thread.java:745)