1

我是 GoogleAppEngine 的新手,在连接到 GoogleAppEngine 的 DataStore 时遇到问题。

在我遵循的教程(http://googcloudlabs.appspot.com/codelabexercise1.html)中,我们插入数据库然后读取。所以,它没有多大帮助(我可能会遗漏一些东西)。

我在 DataStore 中创建了一个表,并且可以从 Google 的 UI 中查询它。一旦我尝试通过 eclipse 连接(使用与我的 GoogleAppEngine 帐户相同的帐户),我会收到以下消息:

INFO: The backing store, /Users/ABC/Documents/workspace/projectABC/war/WEB-INF/appengine-generated/local_db.bin, does not exist. It will be created.

反过来又返回 0 行,因为它没有数据。

代码是这样的(如其他地方所述):

private static DatastoreServiceConfig config = DatastoreServiceConfig.Builder.withDefaults();
private static DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(config);  

Jdoconfig.xml

<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">

   <persistence-manager-factory name="transactions-optional">
       <property name="javax.jdo.PersistenceManagerFactoryClass"
           value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/>
       <property name="javax.jdo.option.ConnectionURL" value="appengine"/>
       <property name="javax.jdo.option.NontransactionalRead" value="true"/>
       <property name="javax.jdo.option.NontransactionalWrite" value="true"/>
       <property name="javax.jdo.option.RetainValues" value="true"/>
       <property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
   </persistence-manager-factory>


</jdoconfig>

我们如何传达要连接的数据存储(在我的例子中,我通过 GUI 创建了它并在其中插入了一些条目)?需要进行哪些更改?

我们是否需要覆盖 DefaultServiceConfig?是appIdNamespace必需的吗?

任何帮助,将不胜感激。

谢谢,

4

2 回答 2

2

使用远程 API怎么样?

Java SDK 包含一个名为 Remote API 的库,可让您从任何 Java 应用程序透明地访问 App Engine 服务。例如,您可以使用远程 API 从本地计算机上运行的应用程序访问生产数据存储。您还可以使用 Remote API 从不同的 App Engine 应用程序访问一个 App Engine 应用程序的数据存储区。

于 2013-07-28T08:41:13.257 回答
0

我们无法连接到在生产中构建的应用程序的 DataStore。:(

它创建了一个本地开发数据存储,我们需要填充/使用它。

于 2013-07-27T22:01:16.727 回答