【问题标题】:GAE Datastore - cannot start LocalDevelopmentDatastore programmatically on WindowsGAE 数据存储 - 无法在 Windows 上以编程方式启动 LocalDevelopmentDatastore
【发布时间】:2023-03-20 02:48:01
【问题描述】:

环境:
Java API google-api-services-datastore-protobuf v1beta2-rev1-3.0.0.
操作系统: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.cmdgcd.sh 的路径是 `C:\gcd)。 另外,我设置了环境变量:

"DATASTORE_HOST"="http://localhost:8080" and  
"DATASTORE_DATASET"="myapp".  

问题:

发生LocalDevelopmentDatastoreException。
原因:java.io.IOException: Cannot run program "./gcd.sh" (in directory "C:\gcd"): CreateProcess error=2, 系统找不到指定的文件。

请注意,它会尝试查找./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 文档中的示例。

请帮忙。

【问题讨论】:

    标签: java google-app-engine google-cloud-datastore google-api-java-client


    【解决方案1】:

    似乎该方法仅被编程为查找gcd.sh,因为您的配置中似乎没有任何内容可以帮助此操作不会失败。我建议您在Cloud Platform Public Issue Tracker 中打开缺陷报告。

    【讨论】:

      【解决方案2】:

      您是否考虑过 gcloud-java 使用数据存储区? 它还有一个使用LocalGcdHelper 以编程方式启动本地数据存储的选项,它应该可以在 Windows 上运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-03
        • 2011-03-27
        • 1970-01-01
        • 2017-11-05
        相关资源
        最近更新 更多