生成运行代码两天后,GAE servlet抛出IncompatibleRemoteServiceException

时间:2012-11-06 09:22:21

标签: google-app-engine

我确实在周日下午推出了一个新版网站。从那时起,大约有50个用户一直在使用新服务。在星期一到星期二的晚上,当在客户端和服务器之间交换DTO时,一个servlet抛出了“IncompatibleRemoteServiceException”。

它看起来像某个时候使用的服务器(或客户端)代码的先前版本。有没有人遇到过这类问题?

非常感谢任何帮助!

javax.servlet.ServletContext log:ExternalService:处理此调用时抛出了IncompatibleRemoteServiceException。 com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException:com.francecorentstudents.web.client.internal.shared.RegistrationDTO的类型签名无效。     在com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:315)     在com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:206)     在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)     在org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)     在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1166)     在com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102)     在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)     在com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)     在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)     在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.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)     在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)     at org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java:923)     在com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)     在org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)     在com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)     在com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.run(JavaRuntime.java:447)     在com.google.tracing.TraceContext $ TraceContextRunnable.runInContext(TraceContext.java:454)     在com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run(TraceContext.java:461)     在com.google.tracing.TraceContext.runInContext(TraceContext.java:703)     在com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338)     在com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330)     在com.google.tracing.TraceContext $ TraceContextRunnable.run(TraceContext.java:458)     在com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run(ThreadGroupPool.java:251)     在java.lang.Thread.run(Thread.java:679) 原因:com.google.gwt.user.client.rpc.SerializationException:com.francecorentstudents.web.client.internal.shared.RegistrationDTO的类型签名无效     在com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.validateTypeVersions(ServerSerializationStreamReader.java:931)     在com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize(ServerSerializationStreamReader.java:545)     在com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)     在com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader $ ValueReader $ 8.readValue(ServerSerializationStreamReader.java:138)     在com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeValue(ServerSerializationStreamReader.java:385)     在com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:303)     ......还有35个

1 个答案:

答案 0 :(得分:1)

如果在初始部署后的任何时候更新并部署了代码,则其中一个客户端可能正在使用缓存的客户端代码。请参阅此answer