我尝试像这样创建实体:
DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
Entity stock = new Entity("Stock", 1);
stock.setProperty("Stock", "FCB");
ds.put(stock);
但不断收到错误:
没有源代码可用于com.google.appengine.api.datastore.DatastoreService类型;你忘了继承一个必需的模块吗?
答案 0 :(得分:2)
错误意味着它所说的,GWT编译器需要访问它编译为Javascript的Java源代码,显然DatastoreService
不应该存在于前端 - 所以你在这里遇到了架构问题。
您需要编写一个可以调用服务器组件的代理(它依次调用DatastoreService
)并返回DTO /值对象(您定义的,因此有源代码)。 / p>
干杯,
答案 1 :(得分:1)
GWT将Java音译为Javascript,阅读它的源代码,然后有limited language support。
您尝试实现的是仅服务器操作,并且您将在客户端代码中添加此操作,该操作将在浏览器上运行。 GAE不允许这样做,或者GWT没有这些类的来源,也没有能力这样做。
您需要向服务器创建一个访问DatastoreService
的请求,将输出返回给客户端代码。
下面是一个正确的架构师GWT Web应用程序的示例: