【问题标题】:The error creating app Engine's DataStore Entity within GWT app在 GWT 应用程序中创建应用程序引擎的 DataStore 实体时出错
【发布时间】:2015-05-22 12:59:19
【问题描述】:

我尝试像这样创建实体:

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

但不断收到错误:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    干杯,

    【讨论】:

      【解决方案2】:

      没有可用的源代码

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

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

      解决方案

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

      【讨论】:

      • 也许这个库可以解决这个问题:github.com/objectify/objectify-gwt??
      • 嘿@TadasDavidsonas,我不太确定,我查了它的源代码,听起来还没有准备好制作,也没有为DatastoreService 提供源代码或包装器,我想你最终会得到同样的问题。 PS:我在一个项目中使用了Objectify lib,很好:-)
      猜你喜欢
      • 1970-01-01
      • 2015-01-08
      • 2012-01-28
      • 1970-01-01
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2023-03-23
      相关资源
      最近更新 更多