2013-02-11 40 views
2

我使用GWT-GAE和面临的一个问题不好处理RPC 不能在客户端中使用实体类在服务器端从服务器端GWT RPC的传球对象,客户端问题

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

但该解决方案将导致其他错误,这太难以实现

所以是一个问题导入服务器端类到客户端类cuz有一个人说在上面的链接,他说: 有几件事情要记住关于GWT: 服务器端类可以导入客户端边班,但反之亦然(通常)。 的客户端不能导入任何谷歌应用程序引擎库(即com.google.appengine.api.users.User)

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

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

由于提前

+0

至少在发布之前阅读你的问题。你甚至没有说出“问题”是什么。 – Strelok 2013-02-12 05:30:49

+0

其实问题与链接问题相同,但我会更清楚 – YouYou 2013-02-12 05:32:05

回答

3

什么是报价意味着,任何代码,您通过RPC发送到客户端必须转换为Javascript。因此,任何不能转换为Javascript的Java结构或库都不适用于客户端。任何在客户端工作的代码将(应该)在服务器上工作,因为它仍然只是Java,并且运行在服务器中的代码不需要被转换成Javascript中的等效代码,因此该限制不适用。

为了帮助您解决您的特定问题,我们需要关于您遇到的任何问题的更多具体信息。通常,您想通过RPC发送的对象只是将模型数据传输到可以使用数据的客户端。当您的模型在服务器中使用无法转换为Javascript的代码时,尤其如此。换句话说,如果您的实体类使用某些特定于服务器的代码,则需要将该代码留在服务器中,并且只将数据发送给客户端以及您需要的任何鳕鱼,但确实可以发送给客户。这是GWT RPC和较新的RequestFactory之间的一个很好的区别,如果这是您所面临的问题,这可能是您需要的。

+0

因此,如果我使用RPC,我将面对Java-JavaScript问题,否则** RequestFactory **是一个很好的解决方案 – YouYou 2013-02-12 06:06:43

0

随着http://code.google.com/p/objectify-appengine/可以把你的实体类成<源路径=“客户” />或<源路径=“共享” />(例如,在服务器侧就可以从数据库加载股票,并将其发送“原样”给客户端;然后在客户端上,您可以修改库存或创建一个新库并将其发送到服务器)。