我需要在GWT
中序列化未知类型的对象(只有JDBC
类型)。我有一个持有不知名的“jdbc”对象列表的对象,我需要它从客户端传输到服务器并返回。如果这个对象序列化为不在gwt客户端环境中,我可以在Object
列表中保存这些未知对象。但GWT不能序列化Object
类型的对象。我怎样才能做到这一点?任何建议序列化GWT中的JDBC类型
回答
请参阅GWT JRE Emulation Reference,没有Object
类和GWT无法序列化它,所以你应该创建自己的传输对象,它实现了标记接口IsSerializable。 简而言之,RPC无法序列化java.lang.Object
。检查此链接: GWT Sending type OBJECT Via RPC和良好的线程在这里: Serialize object和Why is GWT serialization so complicated?
我知道Object类不是由GWT序列化的。这是我的问题的一个目标,以了解如何序列化具有共同超类型的未知对象作为对象 – maks 2012-02-21 09:53:02
否GWT-RPC无法序列化java.lang.Object,除此之外,映射也不能被序列化 – 2012-02-21 10:19:13
您可能遇到了问题,如果不被任何您的其他RPC方法返回的JDBC类型。
例如,如果您的Foo类不是通过RPC以除了返回List [Object]之外的任何方法发送的,那么GWT在编译时(在它生成RPC白名单时)并不知道Foo是一个它应该生成序列化代码的类。这对生成的JavaScript特别有用,其中避免来自未使用类型的代码膨胀非常重要。
您可以通过在通过RPC发送的虚拟类中手动添加否则未引用的类(JDBC中所有可能的返回类型)来解决此问题。 How do I add a type to GWT's Serialization Policy whitelist?
或者,您可以编写一个自定义的RemoteService生成器来使用,它可以添加不需要Dummy类的类型。 http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html#generator
即使我编写了这样的Dummy类,我可以使用'List
您可以返回他们作为
List<Serializable> serviceMethod();
如果你保证,他们都是Serializable接口。在从服务方法返回之前,将它们全部转换为Serializable。
- 1. GWT中的序列化2.5.1
- 2. GWT中的BigDecimal序列化
- 3. 一个子类的GWT序列化
- 4. GWT RPC序列化
- 5. GWT的控制序列化
- 6. 带序列化的GWT
- 7. ArrayList的反序列化GWT
- 8. GWT在RPC调用中反序列化泛型列表
- 9. OCaml序列化与类型
- 10. 序列化类型定义?
- 11. 序列化返回类型
- 12. 反序列化泛型(但可序列化)类型
- 13. GWT数据序列化
- 14. GWT - RPC序列化异常
- 15. GWT序列化问题
- 16. 序列化GWT画布
- 17. GWT java.util.Date序列化错误
- 18. 序列化为XML并包含序列化对象的类型
- 19. 无法序列化泛型类型'System.Windows.FreezableCollection`
- 20. 爪哇GSON - 序列化&反序列化类泛型类型为List
- 21. 在GWT中序列化aspectj方法
- 22. 哪个序列化程序最容易改变.NET中的序列化类型?
- 23. 序列化类型构建器列表
- 24. c#base序列化程序类型
- 25. VB.Net序列化匿名类型的XML
- 26. 基本类型的Jackson序列化器
- 27. XML序列化类型的错误
- 28. 记录类型的F#序列化
- 29. 类型OBJECT成员的Wcf序列化
- 30. 使用sexplib序列化ocaml的类型
他们都是实际上GWT序列化?这些课程是由你创建的吗? – Strelok 2012-02-21 05:52:20
我创建的类是可序列化的,并且JDBC类型(代表数据库类型的Java类型)也是可序列化的(请参阅http://db.apache.org/ojb/docu/guides/jdbc-types.html),可能除外Blob和Clob,但我不与他们合作 – maks 2012-02-21 09:56:33