在 GWT 应用程序中创建应用程序引擎的数据存储实体时出错

The error creating app Engine's DataStore Entity within GWT app

我尝试这样创建实体:

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

但不断收到错误消息:

No source code is available for type com.google.appengine.api.datastore.DatastoreService; did you forget to inherit a required module?

没有可用的源代码

GWT 将 Java 音译为 Java 脚本,阅读它的源代码并且有一个 limited language support.

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

解决方案

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

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

您需要编写一个可以调用服务器组件(依次调用 DatastoreService)和 returns DTOs/value 对象(您定义并因此具有的来源)。

干杯,