GAE 数据存储 - 无法在 Windows 上以编程方式启动 LocalDevelopmentDatastore
GAE Datastore - cannot start LocalDevelopmentDatastore programmatically on Windows
环境:
Java API google-api-services-datastore-protobuf v1beta2-rev1-3.0.0
.
OS: Windows 7.
目标:
使用以下方法启动本地数据存储服务器:
public void start(String sdkPath, String dataset, String cmdLineOptions)
来自 com.google.api.services.datastore.client.LocalDevelopmentDatastore.java
以便在单元测试中使用它。
步骤:
我下载了 gcd 工具 gcd-v1beta2-rev1-3.0.2.zip
并将其放入 C:\gcd
文件夹
(gcd.cmd
和 gcd.sh
的路径是 `C:\gcd)。
另外,我设置了环境变量:
"DATASTORE_HOST"="http://localhost:8080" and
"DATASTORE_DATASET"="myapp".
问题:
LocalDevelopmentDatastoreException occurs.
Caused by: java.io.IOException: Cannot run program "./gcd.sh" (in directory "C:\gcd"): CreateProcess error=2, The system cannot find the file specified.
请注意,它试图找到 ./gcd.sh
而不是 gcd.cmd
。
Java代码:
String datasetName = "myapp";
String hostName = "http://localhost:8080";
DatastoreOptions options = new DatastoreOptions.Builder()
.host(hostName)
.dataset(datasetName).build();
LocalDevelopmentDatastoreOptions localOptions = new LocalDevelopmentDatastoreOptions.Builder()
.addEnvVar("DATASTORE_HOST", hostName)
.addEnvVar("DATASTORE_DATASET", datasetName).build();
LocalDevelopmentDatastore datastore = LocalDevelopmentDatastoreFactory.get().create(options, localOptions);
datastore.start("C:\gcd", datasetName);
此代码基于 LocalDevelopmentDatastore.java 文档中的示例。
请帮忙。
似乎该方法只被编程为寻找 gcd.sh
,因为它似乎没有在您的配置中有任何可以帮助它不失败的东西。我建议您在 Cloud Platform Public Issue Tracker 中打开一个缺陷报告。
您是否考虑过 gcloud-java 使用 Datastore?
它还具有使用 LocalGcdHelper 以编程方式启动本地数据存储的选项,这应该适用于 Windows.
环境:
Java API google-api-services-datastore-protobuf v1beta2-rev1-3.0.0
.
OS: Windows 7.
目标:
使用以下方法启动本地数据存储服务器:
public void start(String sdkPath, String dataset, String cmdLineOptions)
来自 com.google.api.services.datastore.client.LocalDevelopmentDatastore.java
以便在单元测试中使用它。
步骤:
我下载了 gcd 工具 gcd-v1beta2-rev1-3.0.2.zip
并将其放入 C:\gcd
文件夹
(gcd.cmd
和 gcd.sh
的路径是 `C:\gcd)。
另外,我设置了环境变量:
"DATASTORE_HOST"="http://localhost:8080" and
"DATASTORE_DATASET"="myapp".
问题:
LocalDevelopmentDatastoreException occurs.
Caused by: java.io.IOException: Cannot run program "./gcd.sh" (in directory "C:\gcd"): CreateProcess error=2, The system cannot find the file specified.
请注意,它试图找到 ./gcd.sh
而不是 gcd.cmd
。
Java代码:
String datasetName = "myapp";
String hostName = "http://localhost:8080";
DatastoreOptions options = new DatastoreOptions.Builder()
.host(hostName)
.dataset(datasetName).build();
LocalDevelopmentDatastoreOptions localOptions = new LocalDevelopmentDatastoreOptions.Builder()
.addEnvVar("DATASTORE_HOST", hostName)
.addEnvVar("DATASTORE_DATASET", datasetName).build();
LocalDevelopmentDatastore datastore = LocalDevelopmentDatastoreFactory.get().create(options, localOptions);
datastore.start("C:\gcd", datasetName);
此代码基于 LocalDevelopmentDatastore.java 文档中的示例。
请帮忙。
似乎该方法只被编程为寻找 gcd.sh
,因为它似乎没有在您的配置中有任何可以帮助它不失败的东西。我建议您在 Cloud Platform Public Issue Tracker 中打开一个缺陷报告。
您是否考虑过 gcloud-java 使用 Datastore? 它还具有使用 LocalGcdHelper 以编程方式启动本地数据存储的选项,这应该适用于 Windows.