Java GAE远程API-无法连接

Java GAE远程API-无法连接,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,好的,我尝试使用此处概述的步骤连接到远程数据存储并从本地计算机进行填充,但未成功: 我正在安装404。安装(选项): java.io.IOException:无法从远程api获取appId;状态代码=404 我是不是遗漏了什么?我在web.xml中启用了远程api并部署到GAE。我是项目的所有者。在本地运行您的服务(启用远程api),并尝试使用“localhost”和8888(端口)运行相同的代码,并检查您的代码是否可以访问本地运行的服务。您的代码似乎是正确的。有两种可能: 1.RemoteAp

好的,我尝试使用此处概述的步骤连接到远程数据存储并从本地计算机进行填充,但未成功:

我正在安装404。安装(选项): java.io.IOException:无法从远程api获取appId;状态代码=404 我是不是遗漏了什么?我在web.xml中启用了远程api并部署到GAE。我是项目的所有者。

在本地运行您的服务(启用远程api),并尝试使用“localhost”和8888(端口)运行相同的代码,并检查您的代码是否可以访问本地运行的服务。您的代码似乎是正确的。有两种可能: 1.RemoteApi未正确启用。 2.应用程序名称拼写不正确

除此之外,我还使用以下代码访问远程api-

        installer.install(options);
        try {
            // Update the options with reusable credentials so we can skip
            // authentication on subsequent calls.
            options.reuseCredentials(username, installer.serializeCredentials());
        } finally {
            installer.uninstall();
        }

然而,这不应该给你你得到的错误

我意识到这有点晚了,但我只是在谷歌搜索时发现的,因为我有一个类似的问题,我自己解决了。对我来说,问题是,我的AppEngine应用程序提供远程API,它是一个python应用程序,python文档指示将远程API端点配置为/remoteapi*

然而,我的远程api客户机是一个java应用程序,显然,它所进行的远程api调用会转到这样一个端点:/remote\u api。因此,将其添加到服务器路由配置(在我的示例app.yaml中)解决了这个问题。另外请注意,如果为appengine应用提供远程api服务的应用程序不在默认模块中,则url应该类似于my-module-name-dot-my-project.appspot.com


此外,您应该使用useApplicationDefaultCredential()而不是credentials(),这是不推荐使用的

如果您获得的是404,这意味着您的应用程序未提供服务,远程API未正确配置(没有端点),或者您拼写的应用程序名称不正确。
        installer.install(options);
        try {
            // Update the options with reusable credentials so we can skip
            // authentication on subsequent calls.
            options.reuseCredentials(username, installer.serializeCredentials());
        } finally {
            installer.uninstall();
        }