如何通过 RPC 发送 GET JavaScript 对象?

Posted

技术标签:

【中文标题】如何通过 RPC 发送 GET JavaScript 对象?【英文标题】:How do I send GWT JavaScriptObjects through RPC? 【发布时间】:2012-04-01 15:46:28 【问题描述】:

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

有没有办法发送这些对象?我觉得我错过了一些关于我应该如何做的事情。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

我明白了。我知道它们不是 JVM 可以加载的 java 类,但我不知道如何优雅地解决这个问题。也许用 JSON 说话是最好的方法。谢谢!

以上是关于如何通过 RPC 发送 GET JavaScript 对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过retrofit2发送Json-rpc?

如何通过远程方法发送 json-rpc http post 请求并在 java 中传递加密参数

JavaScrip ajaxt和python flask通过json传递数据的方法

通过 Axis RPC 客户端发送 CDATA

LimeSurvey:无论如何要使用 get_session_key , JSON-RPC 和 Authwebserver?

如何通过 rpc 查询获取价值?