GWT反序列化异常

时间:2012-05-03 12:08:59

标签: gwt deserialization gwt-rpc

最近转移到Windows 7并将GWT从2.2.0升级到2.4.0。

但是之前有效的应用程序会抛出此异常。

  

警告:获取VaR执行时间失败。 ENV = PRE。   com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException:The   响应无法反序列化   com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:221)     在   com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)     在   com.google.gwt.http.client.RequestBuilder $ 1.onReadyStateChange(RequestBuilder.java:395)     at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     在java.lang.reflect.Method.invoke(Method.java:597)at   com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)     在   com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)     在   com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)     在   com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)     在   com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)     在   com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)     在   com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)     在   com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)     在   com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)     在com.google.gwt.core.client.impl.Impl.apply(Impl.java)at   com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)at at   sun.reflect.GeneratedMethodAccessor32.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     在java.lang.reflect.Method.invoke(Method.java:597)at   com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)     在   com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)     在   com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)     在   com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)     在   com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)     在   com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)     在java.lang.Thread.run(Thread.java:662)引起:   com.google.gwt.user.client.rpc.SerializationException:   java.util.ArrayList / 3821976829 at   com.google.gwt.user.client.rpc.impl.SerializerBase.getTypeHandler(SerializerBase.java:153)     在   com.google.gwt.user.client.rpc.impl.SerializerBase.instantiate(SerializerBase.java:114)     在   com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:111)     在   com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)     在   com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter $ ResponseReader $ 8.read(RequestCallbackAdapter.java:106)     在   com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:214)     在   com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)     在   com.google.gwt.http.client.RequestBuilder $ 1.onReadyStateChange(RequestBuilder.java:395)     at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     在java.lang.reflect.Method.invoke(Method.java:597)at   com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)     在   com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)     在   com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)     在   com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)     在   com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)     在   com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)     在   com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)     在   com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)     在   com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)     在com.google.gwt.core.client.impl.Impl.apply(Impl.java)at   com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)at at   sun.reflect.GeneratedMethodAccessor32.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     在java.lang.reflect.Method.invoke(Method.java:597)at   com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)     在   com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)     在   com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)     在   com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)     在   com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)     在   com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)     在java.lang.Thread.run(Thread.java:662)

我见过类似GWT问题的问题,但它与我的问题并不完全相似。

我已经检查过,同步和异步接口以及实现类是兼容的。

正在调用的方法是

Date getSophisVarDumpTime(String environment);

该应用程序使用GWT-RPC。

在托管模式下,我进入响应反序列化以找到问题。

我发现SerializerBase.getTypeHandler()中反序列化映射中的一个条目是。

java.sql.Date/730999118=com.google.gwt.user.client.rpc.core.java.sql.Date_FieldSerializer

但响应中的类型信息是java.sql.Date/3996530531,因此找不到反序列化例程。

我尝试过清理和重建应用程序,但这没有任何效果。

不确定这些标识符的不同之处。

任何想法都会受到欢迎。

1 个答案:

答案 0 :(得分:2)

java.sql.Date无法反序列化,您必须将其替换为java.util.Date