在GWT应用程序中创建应用程序引擎的DataStore实体时出错

时间:2015-05-22 12:59:20

标签: gwt google-cloud-datastore app-engine-ndb

我尝试像这样创建实体:

DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
Entity stock = new Entity("Stock", 1);
stock.setProperty("Stock", "FCB");
ds.put(stock);

但不断收到错误:

  

没有源代码可用于com.google.appengine.api.datastore.DatastoreService类型;你忘了继承一个必需的模块吗?

2 个答案:

答案 0 :(得分:2)

错误意味着它所说的,GWT编译器需要访问它编译为Javascript的Java源代码,显然DatastoreService不应该存在于前端 - 所以你在这里遇到了架构问题。

您需要编写一个可以调用服务器组件的代理(它依次调用DatastoreService)并返回DTO /值对象(您定义的,因此有源代码)。 / p>

干杯,

答案 1 :(得分:1)

没有可用的源代码

GWT将Java音译为Javascript,阅读它的源代码,然后有limited language support

您尝试实现的是仅服务器操作,并且您将在客户端代码中添加此操作,该操作将在浏览器上运行。 GAE不允许这样做,或者GWT没有这些类的来源,也没有能力这样做。

解决方案

您需要向服务器创建一个访问DatastoreService的请求,将输出返回给客户端代码。 下面是一个正确的架构师GWT Web应用程序的示例: GWT Diagram