java - GWT RPC 将对象从服务器端传递到客户端问题

标签 java google-app-engine gwt

我正在使用GWT-GAE,但在处理RPC时遇到了严重问题 无法在客户端内的服务器端使用实体类

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

但是该解决方案会导致其他错误,并且实现起来太困难

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

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

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

提前致谢

最佳答案

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

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

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

关于java - GWT RPC 将对象从服务器端传递到客户端问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14815203/

相关文章:

python - 如何在 localhost 运行时解锁 App Engine 数据库?

java - GWT 2.6 和 jdk 1.6 出现 UnsupportedClassVersionError

GWT 的 java.lang.IllegalCastException

java - Jinput - 获取鼠标位置

java - Spring 中未调用 Rest Controller

java - 在 Java 中使用用户名和密码访问网络文件夹

python - Google App Engine 中的最大实体大小

javascript - 在 html 和 javascript 中迭代循环仅执行一次 - 应该在循环中每次执行

java - 将 openid4java 集成到 GWT 项目

java - Java中类的构造函数中的参数有什么问题?