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

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

 

 



GWT RPC问题之
 
 

解决方案:

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

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

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

现在的Service接口:



 

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

解决方案:

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

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


GWT RPC问题之
 
 

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

现在的Service:




 
 

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

解决方案:

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

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

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


GWT RPC问题之
 

 

Service接口

 

 

 

 

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



 

 

你可能感兴趣的:(gwt)