现在 Google Cloud Endpoints 已向所有开发人员开放,我创建了一个 Google Cloud Endpoint,它可以在 Eclipse 调试中本地运行。但是当我部署时,实时端点只返回一个 HTTP 404。我的项目的 JSP 页面在本地运行和部署。这只是一旦部署就不起作用的端点。
有人知道我需要做什么来部署云端点吗?
现在 Google Cloud Endpoints 已向所有开发人员开放,我创建了一个 Google Cloud Endpoint,它可以在 Eclipse 调试中本地运行。但是当我部署时,实时端点只返回一个 HTTP 404。我的项目的 JSP 页面在本地运行和部署。这只是一旦部署就不起作用的端点。
有人知道我需要做什么来部署云端点吗?
我发现即使我只部署了一个版本 (v1) 并且该版本在应用引擎管理控制台中被指示为“默认”版本,但在访问 API 之前,我仍然必须将 v1“设置”为默认版本。
Endpoints 目前仅在默认应用版本上支持 API。
我注意到您必须通过将您部署的版本设置为默认版本来访问您的端点。例如https://yourappid.appspot.com/_ah/api/path/v2/methodname。如果您使用https://someappversion.yourappid.appspot.com/_ah/api/path/v2/methodnamel,根据我的经验它将无法工作
您是否尝试过通过 API 资源管理器访问它们?
我昨天遇到了同样的问题...只是碰巧使用了错误的地址。
错误的是V2。API版本不随Appengine版本增加!这是两个不同的版本。尝试使用版本 1。
我遇到了这个问题,我的问题是我没有在 Eclipse 中生成“Cloud Endpoint Cloud Library”。
一旦我做到了,一切都完美无缺。
从 App Engine 1.7.7 及更早版本开始,这也可能是由于忘记将 Endpoint 类添加到 web.xml 造成的,如下所示:
<servlet>
<servlet-name>SystemServiceServlet</servlet-name>
<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<!-- Careful! No whitespace but commas between class names. -->
<param-value>ditto.api.CategoryEndpoint,ditto.api.PostEndpoint</param-value>
</init-param>
</servlet>
要添加到已接受的答案,如果您的 API 是用 Java 编写的,并且您使用的是 Maven,则可以通过将其添加到appengine-maven-plugin
. 部署时,版本号会自动更新,部署的版本会被设置为你的 API 当前运行的唯一版本:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>${appengine.maven.plugin.version}</version>
<configuration>
<deploy.projectId>my-gcp-project-name</deploy.projectId>
<deploy.version>GCLOUD_CONFIG</deploy.version>
</configuration>
</plugin>
相关行是<deploy.version>GCLOUD_CONFIG</deploy.version>
(GCLOUD_CONFIG
是您需要的实际值 - 在部署时它被识别为特殊变量)