GWT RPC问题之"GWT将某些类型视为可序列化"

问题描述:因为RPC Service接口只支持java的一些基本类型和String,当我的项目中有一个类、ListMap、数组等等,需要传递到前台的时候,GWT想通过编译那么就必须要证明这些是可序列化的,换句话说就是这个Service这个接口就是让我们来往里加入一些不让GWT认为它是可序列化的,前提是实现了SerializableIsSerializable接口,这个接口里边必须要有相关方法,也就是说必须要有这个类、ListMap、数组等,在里面可以充当参数,也可以充当反回值,但是当我传递的时候用到了第二个类、第三个类…第一百个类,再加上几个数组或者其它的东西时,那么此此时这个接口就应该有N个方法来满足这个要求,这样非常的不便利如:

 

 




 
 

解决方案:

1、  既然所有的类都需要实现Serializabled接口,那么我们就定义一个接口去extends Serializabled接口

2、  将这个接口放入Service接口中,让GWT认为它是可以通过编译的。

3、  将我们项目中的所有model类都实现这个自定义的接口,这就标识着所有的model类都可以通过GWT编译。

现在的Service接口:



 

解决完了以后又发现一个新的问题,ListList<String>List<List<String>>Map和一维二维数组怎么办呢。还需要再另写几个方法吗?答案是否定的

解决方案:

1、  照葫芦画瓢,将所有的类型都放一个类里(建立一个RpcDTO类)

2、  这个类实现Serializabled接口如图:



 
 

这样的话我们的Service接口里只需要两个标识,即可让GWT认为所有的都是可通过编译的。

现在的Service:




 
 

再让其变的完美一些,能不能只需要一个方法,这个方法即可以让我们用来标识可序列化,又可以当做服务层来处理我们的请求。

解决方案:

1、  建立一个RpcDTO类让其实现Servializable接口

2、  将所有项目中可能用到的类型都放入其中

3、  HashMap同样放入其中它的范型为String,Servializable如图:DTO



 

 

Service接口

 

 

 

 

表达的不怎么清晰,希望对未解决此类问题的人有所帮助.



 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值