浏览 2258 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-11
半夜了,也睡不着觉了,总结一下SerializationException产生的原因,与大家共勉。 1。客户端UI依赖的java code和服务器端的不一致。 一般情况下,客户端和服务器端都会使用相同的业务模型,或者pojo,或者说是DTO更标准些,因为这些对象就是从服务器端传递到客户端的。如果这些代码两边使用的不一致,客户端就会报错了。客户段按照编译好的js里面定义的对象格式来解析服务器端传递过来序列化过的对象,如果多个属性或者少个,客户端可不会忽略掉,报个错提示你一下。 常见提示:the application is out of date(host mode) 2.某些属性不能序列化 gwt只是对jdk类的一个子集提供支持,除此之外都是不能直接序列化的。比如java.sql.Date,我们在使用hibernate从数据库中取到的date都是java.sql.Date的实例,而gwt只认识java.util.Date.该异常经常发生在服务器端,不能序列化嘛。当然,客户端的有这些类的话,呵呵,编译都不会过的。 3.不知其所以然的情况。类似上面我遇到的问题。我检查代码都不知道看了多少遍,客户端和服务器段代码绝对一致,所有的属性均可序列化 。而且奇怪的是,同样的一个List<MyObject>的list,有的可以,有的就是不行。最后解决办法,关机,重启,然后在测试的时候顺手把@gwt.typeArgs都去掉了。OK,终于好了! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-17
最后修改:2008-12-17
挑个刺哦,GWT 1.5已经支持java.sql.Date了,呵呵
http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=ReleaseNotes_1_5_JreEmulation |
|
返回顶楼 | |
发表时间:2008-12-17
edokeh 写道 挑个刺哦,GWT 1.5已经支持java.sql.Date了,呵呵
http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=ReleaseNotes_1_5_JreEmulation oh.Sorry 最近一直采用1.4做开发,这个改变没有注意。1.5还是有好多方便的地方啊 |
|
返回顶楼 | |
发表时间:2008-12-18
是啊,尤其是1.5支持泛型让我热泪盈眶啊
|
|
返回顶楼 | |