【问题标题】:Migrating to Google Cloud Endpoints v2迁移到 Google Cloud Endpoints v2
【发布时间】:2017-02-14 19:40:04
【问题描述】:

我目前在现有应用程序中使用 Cloud Endpoints v1,但我想将其更新为 v2 for App Engine in Java。我已经查看了migration guide,但这仅提供了迁移 Maven 项目的步骤。我没有使用 Maven,但我使用 Java App Engine SDK 和 Google Eclipse 插件来开发、测试和部署我的端点。由于与App Engine SDK 中的现有依赖项发生冲突,我无法运行 Cloud Endpoints Framework v2。如何覆盖 App Engine SDK 中的 v1 依赖项以便迁移到 v2?这可能吗,还是我应该将我的项目转换为 Maven 项目?

【问题讨论】:

    标签: google-app-engine google-cloud-endpoints google-eclipse-plugin google-cloud-endpoints-v2


    【解决方案1】:

    我认为 GPE 已被弃用。但是,您应该能够右键单击您的 App Engine 项目,选择 Build Path > Configure Build Path,然后在库选项卡下添加 endpoints-framework JAR。确保转到 Order and Export 并将端点框架移到 App Engine SDK 上方,否则您可能会遇到问题。

    【讨论】:

    • 我按照您的指示进行操作,但在尝试启动本地开发服务器以测试端点时收到错误消息。我还在端点框架中使用 Guice 注入。 java.lang.NoSuchMethodError: com.google.api.server.spi.ServletInitializationParameters.getServiceClasses()Lcom/google/common/collect/ImmutableSet;
    • 我在现有的 Maven 项目中使用相同的端点框架配置,并且没有任何问题。我仍然认为包含旧 appengine-endpoints jar 的 Java App Engine SDK 之间存在某种类型的冲突。
    • 我已经在 Eclipse 中清理了项目,并设置了库和 jar 的顺序,以便首先列出新的 endpoints-framework.jar。在构建项目时仍然存在一个问题,这似乎是由于旧 appengine-endpoints.jar 的存在造成的。旧配置在构建期间在 web.xml 中创建。 @saiyr 是否可以从 App Engine SDK 库中排除 appengine-endpoints.jar?
    【解决方案2】:

    为了覆盖 App Engine SDK for Java 中包含的 appengine-endpoints.jar,我在 appengine-web.xml 中添加了一个 class-loader-config。

    <classloader-config> <priority-specifier filename="endpoints-framework-2.0.3.jar/> </class-loader-config>

    我还在 Eclipse 中禁用了 Google Cloud Endpoint Builder。 Properties>Builders 和未选中的 Google App Engine Cloud Endpoints Builder。

    【讨论】:

    • 您最终使用了 maven,还是设法避免了这种情况?我是时候最终迁移到 GCE v2 了,我将尽一切努力不必使用 maven。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2017-01-13
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多