GWT + Springs + DB4o:任何想法如何在不添加新RPC类的情况下完成这项工作
[WARN]调度传入的RPC调用时发生异常 com.google.gwt.user.client.rpc.SerializationException:类型“com.db4o.internal.query.ObjectSetFacade”未包含在可由此SerializationPolicy序列化的类型集中,或者无法加载其Class对象。出于安全考虑,此类型不会被序列化:instance = [com.ppp.prm.portal.shared.dto.MComments@2214ab5,com.ppp.prm.portal.shared.dto.MComments@4fda105f,com.ppp .prm.portal.shared.dto.MComments @ 7568f5ed,com.ppp.prm.portal.shared.dto.MComments@3de9d6d3,com.ppp.prm.portal.shared.dto.MComments @ 4316d666,com.ppp.prm .portal.shared.dto.MComments @ 1055e4f3,com.ppp.prm.portal.shared.dto.MComments@772a15e5,com.ppp.prm.portal.shared.dto.MComments@6c03aa81] 在com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:619) 在com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126) 在com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter $ ValueWriter $ 8.write(ServerSerializationStreamWriter.java:153) 在com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:539) 在com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:616)
答案 0 :(得分:1)
RPC 101 - 对象需要实现IsSerializable或Serializable接口。 ObjectSetFacade类或其超类都没有实现它们。参考更多规则 - https://developers.google.com/web-toolkit/doc/latest/tutorial/clientserver
DB4o是非gwt java库。您不能在任何RPC调用中发送com.db4o.internal.query.ObjectSetFacade。
1)您应该从db40对象转换为与GWT和RPC兼容的域对象/ pojos。
2)示例 - 我们使用服务器上的Dozer将Hibernate对象转换为Domain pojos。 https://developers.google.com/web-toolkit/articles/using_gwt_with_hibernate