【问题标题】:GWT RPC passing objects from server side to client side issueGWT RPC 将对象从服务器端传递到客户端问题
【发布时间】:2013-01-26 17:39:03
【问题描述】:

我正在使用 GWT-GAE,但在处理 RPC 时遇到了一个糟糕的问题 不能在客户端的服务器端使用实体类

我检查了这个问题的第一个答案 [here]

但解决方案会导致其他错误,实施起来太难

将服务器端类导入客户端类的问题也是如此,因为上面包含的链接中有一个人说: 关于 GWT,有几点需要牢记: 服务器端类可以导入客户端类,但反之亦然(通常)。 客户端无法导入任何 Google App Engine 库(即 com.google.appengine.api.users.User)

如果是这样,那是真的吗?如何克服这个问题我必须在客户端界面中使用服务器端类

提示:我正在使用 JDO 和 No-SQL 数据库(GAE 数据存储)

提前致谢

【问题讨论】:

  • 在发布之前至少阅读您的问题。你甚至没有说“问题”是什么。
  • 其实这个问题和链接的问题是一样的,但我会更清楚

标签: java google-app-engine gwt


【解决方案1】:

这句话的意思是,您通过 RPC 发送给客户端的任何代码都必须转换为 Javascript。因此,任何无法转换为 Javascript 的 Java 构造或库都将无法在客户端上运行。在客户端运行的任何代码都将(应该)在服务器上运行,因为它仍然只是 Java,并且在服务器中运行的代码不需要转换为 Javascript 中的等效代码,因此该限制不适用。

就帮助您解决特定问题而言,我们需要一些有关您面临的任何问题的更具体信息。通常,您希望通过 RPC 向下发送的是一个对象,该对象只是将您的模型数据传输到可以使用数据的客户端。当您的模型在服务器中使用无法转换为 Javascript 的代码时尤其如此。

换句话说,如果您的实体类使用某些特定于服务器的代码,您需要将该代码留在服务器中,并且只将数据连同您需要的任何代码一起发送到您的客户端,但是确实可以发送给客户端。这是 GWT RPC 和较新的 RequestFactory 之间的一个很好的区别,如果这是您面临的问题,这可能是您需要的。

【讨论】:

  • 所以如果我使用 RPC 我将面临 Java-JavaScript 问题,否则 RequestFactory 是一个很好的解决方案
【解决方案2】:

使用http://code.google.com/p/objectify-appengine/,您可以将实体类放入 (例如,在服务器端,您可以从数据库加载 Stock 并发送它“按原样”发送给客户端;然后在客户端上,您可以修改 Stock 或创建新的 Stock 并将其发送到服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多