`
hongyangname
  • 浏览: 15298 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • gwt
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接口

 

 

 

 

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



 

 

  • 大小: 25.5 KB
  • 大小: 51.2 KB
  • 大小: 60.3 KB
  • 大小: 14.5 KB
  • 大小: 19 KB
  • 大小: 13.1 KB
  • 大小: 19.5 KB
分享到:
评论

相关推荐

    GWT RPC详细例子:代码加文档说明

    当调用发出时,GWT会将参数序列化并发送到服务器,服务器执行方法后将结果返回,GWT再将结果反序列化。 压缩包中的“GWTRPC”可能是一个包含示例代码的文件或目录,它可能包括服务接口、服务实现、服务代理以及必要...

    基于GWTRPC的通讯软件

    GWT提供了自动类型检查和序列化/反序列化机制,保证了数据的一致性和安全性。此外,由于GWT编译器会进行代码优化,所以通常GWTRPC的性能优于其他基于XML或JSON的手动编码方案。 5. **通讯软件应用**:在"基于GWTRPC...

    GWT-RPC-1.pdf

    GWT-RPC为开发者提供了一种高效、简洁的客户端与服务器通信方式,它不仅简化了开发流程,还提高了应用程序的性能和响应速度。通过合理设计数据服务接口和回调类,开发者可以轻松实现复杂的数据交互和业务逻辑处理,...

    gwt-rpc-serialization:重用 gwt-storage 和 gwt-rpc 序列化技术在客户端序列化对象的概念证明

    本文将深入探讨GWT-RPC(Remote Procedure Call)和GWT-Storage的序列化技术,并结合给定的标题和描述,展示如何在客户端实现对象的序列化,以及这个概念证明的意义。 **GWT-RPC序列化** GWT-RPC是GWT提供的一种...

    GWT开发手册.doc

    - **序列化与RPC**:GWT不支持Java的标准序列化,但提供了Remote Procedure Call (RPC)机制,用于客户端与服务器间的对象序列化通信。在开发早期就应确保使用的类能够被GWT编译器处理,以避免后期问题。 4. **跨...

    spring集成gwt的办法

    1. **序列化**:由于GWT-RPC需要序列化对象,所以服务接口的参数和返回类型必须是可序列化的。 2. **版本兼容**:确保Spring和GWT的版本兼容,避免出现不兼容问题。 3. **错误处理**:正确处理服务器端异常,将其...

    GWT初学者手册

    2. **序列化**:GWT不支持标准的Java序列化,但提供RPC机制实现服务器交互的自动对象序列化。 四、调试与优化 GWT提供主机模式用于调试,不支持的类库会在首次运行时检测到,因此应尽早并频繁运行程序以发现潜在...

    GWT技术文档详细解说

    GWT支持在客户端和服务端抛出和捕获异常,但需要特别注意异常的序列化问题,因为只有序列化的异常才能跨域传输。 4.4 **国际化** GWT提供了`com.google.gwt.i18n`包,支持多语言资源文件,方便实现应用程序的国际...

    GWT通信机制初探

    本文将探讨GWT中的通信流程、数据序列化、以及如何利用GWT工具进行应用开发。 首先,GWT通信机制主要基于HTTP协议,采用异步请求模式,以保证用户界面的响应性。当客户端需要与服务器交换数据时,会创建一个异步...

    gwt 揭秘 源码

    通过序列化Java对象,GWT可以自动处理客户端与服务器间的类型转换和通信细节。 6. **源码分析** 书中的"part1,2,3"可能分别涵盖了GWT的基础、进阶和实战内容。通过源码学习,开发者可以了解GWT内部如何处理事件、...

    gwt 开发手册轻松入门gwt

    此外,GWT不支持标准Java序列化,但提供了一种替代的RPC(Remote Procedure Call)机制,以实现客户端与服务器之间的对象序列化和通信。 ### 三、GWT开发注意事项 1. **兼容性检查**:在主机模式下运行GWT应用可以...

    gwt+spring

    这些对象应该只包含可序列化的属性,以适应GWT的限制。 8. **错误处理**:当出现异常时,Spring可以捕获并封装成适当的HTTP响应,而GWT客户端可以解析这个响应并显示错误信息。 9. **版本更新**:考虑到描述中提到...

    GWT学习文档

    - **参数和返回值系列化类型**:GWT支持基本类型和某些特定的Java对象的序列化,用于客户端和服务器之间的数据交换。 - **异常处理**:GWT中的异常处理与Java略有不同,需要考虑如何在客户端和服务器之间传递异常...

    最新GWT API

    通过序列化和反序列化,Java对象可以在服务器和客户端之间安全地传输。 5. **历史管理**:GWT提供了历史记录管理功能,使得用户在浏览应用的不同页面或状态时,可以利用浏览器的前进和后退按钮导航,保持良好的用户...

    gwt-servlet-2.3.0.jar

    当客户端需要调用服务器上的方法时,会序列化参数并通过HTTP POST请求发送到服务器,服务器端的Servlet解析请求,执行相应的方法,并将结果返回给客户端。 3. **服务端入口点**:在`gwt-servlet-2.3.0.jar`中,`...

    Spring4GWT技术资料

    这些代理类是由GWT编译器自动生成的,它们负责序列化和反序列化数据,以及处理网络通信。 7. **模块化开发**:Spring4GWT支持GWT的模块化,这意味着开发者可以将应用程序分解为多个独立的GWT模块,每个模块负责一...

Global site tag (gtag.js) - Google Analytics