2012-04-01 50 views
1

我有几个GWT Maps API JavaScriptObjects(LatLng,Polyline),我想在RPC与客户端和服务器之间发送,但因为它们不可序列化,所以我不能使用它们。目前我有用于RPC通信的Pojos,并将它们镜像到它们在客户端的JavaScriptObject双胞胎中...如何通过RPC发送GWT JavaScriptObjects?

有什么办法通过发送这些对象吗?我有这样的感觉,我错过了一些关于我该如何做的事情。

回答

1

JavaScriptObject s不是真正的Java对象,所以虽然它们在开发模式下工作,并且编译为JavaScript时,但它们无法在标准JVM中工作,而无法连接到浏览器。所以不,你不能通过RPC发送JSO到服务器。一个标准的JVM甚至不能加载这个类,因为JSO将有native方法,并且JVM将没有这些方法的正确实现。

如果你可以控制JSO,你可以让它和你的POJO实现一个通用接口。对于Maps API,您可能不会控制它 - 一个想法可能是将对象序列化为JSON字符串并将其发送到服务器。如果服务器需要读取数据,则可以使用Gson,Jackson,json.org等读取这些JSON字符串中的数据。

+0

我明白了。我知道他们不是JVM可以加载的Java类,但我不知道如何优雅地解决这个问题。也许用JSON说话是最好的方法。谢谢! – Croo 2012-04-01 17:49:58