【问题标题】:Google Cloud Endpoint 404 after deployment部署后的 Google Cloud Endpoint 404
【发布时间】:2013-02-21 19:53:05
【问题描述】:

现在 Google Cloud Endpoints 已向所有开发人员开放,我创建了一个 Google Cloud Endpoint,它可以在 Eclipse 调试中在本地运行。但是当我部署时,实时端点只返回一个 HTTP 404。我的项目的 JSP 页面在本地运行和部署。只是端点一旦部署就无法工作。

有人知道部署云端点需要做什么吗?

【问题讨论】:

    标签: google-app-engine http-status-code-404 google-cloud-endpoints


    【解决方案1】:

    我发现,即使我只部署了一个版本 (v1),并且该版本在应用引擎管理控制台中被指示为“默认”版本,我仍然必须在 API 可访问之前将 v1“设置”为默认版本.

    【讨论】:

    • 你能解释一下你做了什么吗?我也有这个问题。 “在访问 API 之前,我仍然必须将 v1 设置为默认值”是什么意思??
    • 在 appengine.google.com 上,转到主要 > 版本。您将看到已部署的版本列表(该列表可能像我的一样,仅包含一个版本,V1)。即使这个版本是唯一一个它说它是默认版本的版本,我仍然不得不按下 Make Default 按钮。在此之后,一切都开始工作了。
    • 很遗憾,这并不能解决我的问题。仍然得到 404s
    【解决方案2】:

    Endpoints 目前仅在默认应用版本上支持 API。

    【讨论】:

    • 冒着听起来很愚蠢的风险 - 默认应用版本是什么?
    【解决方案3】:

    我注意到您必须通过将您部署的版本设置为默认版本来访问您的端点。例如https://yourappid.appspot.com/_ah/api/path/v2/methodname。如果您使用https://someappversion.yourappid.appspot.com/_ah/api/path/v2/methodnamel,根据我的经验,它不会起作用

    【讨论】:

    • 可以设置默认应用版本,方法是登录您的应用引擎管理客户端 (appengine.google.com),然后点击左侧菜单中的“版本”,然后选择其中一个版本作为您的默认版本。
    【解决方案4】:

    您是否尝试通过 API 资源管理器访问它们?

    我昨天遇到了同样的问题...只是碰巧使用了错误的地址。

    【讨论】:

    • 是的,我试过了——资源管理器没有显示任何服务等。
    【解决方案5】:

    V2 是错误的。 API版本不随Appengine版本增加!这是两个不同的版本。尝试使用版本 1。

    【讨论】:

      【解决方案6】:

      我遇到了这个问题,我的问题是我没有在 eclipse 中生成“Cloud Endpoint Cloud Library”。

      一旦我这样做了,一切都很完美。

      【讨论】:

        【解决方案7】:

        从 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>
        

        【讨论】:

          【解决方案8】:

          要添加到接受的答案,如果您的 API 是用 Java 编写的,并且您使用的是 Maven,则可以通过将其添加到您的配置中自动生成 API 版本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>
          

          相关行是&lt;deploy.version&gt;GCLOUD_CONFIG&lt;/deploy.version&gt;GCLOUD_CONFIG 是您需要的实际值 - 在您部署时它被识别为特殊变量)


          【讨论】:

            猜你喜欢
            • 2023-02-05
            • 2019-09-10
            • 1970-01-01
            • 2016-11-11
            • 2014-08-03
            • 1970-01-01
            • 1970-01-01
            • 2023-03-12
            • 2022-11-16
            相关资源
            最近更新 更多