【问题标题】:Enhancing endpoints in Cloud Endpoints Frameworks 2.0 for App Engine在 Cloud Endpoints Frameworks 2.0 for App Engine 中增强端点
【发布时间】:2017-08-03 19:47:16
【问题描述】:

我收到了一封来自 GCP 的电子邮件,要求我将我的项目从 Cloud Endpoints 1.0 迁移到 Cloud Endpoints Frameworks 2.0。

我已按照此处列出的步骤进行操作:https://cloud.google.com/appengine/docs/java/endpoints/migrating?authuser=0

在我以前的 build.gradle 中,我有这个指令来增强我的端点,它工作正常:

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
    endpoints {
        getClientLibsOnBuild = true
        getDiscoveryDocsOnBuild = true
    }
    enhancer {
        version = "v2"
        api="jdo"  // or "jpa"
        enhanceOnBuild = true
    }
}

但是,在迁移和编译之后,我收到以下错误:

错误:(60, 0) 在 com.google.cloud.tools.gradle.appengine.core.AppEngineExtension 类型的对象上找不到参数 [build_2dn4fni12bkrsqgsi25gsx3hh$_run_closure2$_closure7@6b02ee9e] 的方法增强器。

如果我删除 enhancer 部分,我会收到以下错误:

org.datanucleus.metadata.MetaDataManager initialiseFileMetaDataForUse: 找到类 [...] 的元数据,但是这个类没有增强!!请在运行 DataNucleus 之前增强类。

那么,新框架中的等效增强是什么? (我使用的是 Android Studio 2.3.3)

【问题讨论】:

    标签: java google-app-engine gradle google-cloud-platform google-cloud-endpoints-v2


    【解决方案1】:

    问题是新的 gradle 插件没有任务appengineEnhance,这是增强 jpa/jdo 类所必需的。

    这里有一个解决方法https://stackoverflow.com/a/29279504/3190492

    同样值得一提的是,appengine 块中的 enhancer {...} 部分不是必需的,并且应该在上面链接中的脚本中完成配置。

    【讨论】:

    • 谢谢,但我收到错误:taskdef class org.datanucleus.enhancer.EnhancerTask 无法使用类加载器 AntClassLoader 找到
    • 必须使用'org.datanucleus.enhancer.tools.EnhancerTask'
    • 谢谢你的提示......应该在谷歌应用引擎端点框架V2文档中说明(同样应该明确表示你需要升级到android支持26).. .新版本还没有准备好,不应该强迫人们迁移不完整的东西而浪费很多时间......我们被用作错误测试的实验室老鼠
    【解决方案2】:

    我直接从 Google Cloud Support 得到了这个回复:

    目前有一些功能和工具被排除在外 最新版本的 Endpoints v2 不可用。如果你的 应用程序需要以下任何一项,你不是 建议迁移。

    • JSON-RPC 协议,旧版 iOS 客户端需要此协议
    • 自动 ETag
    • 自动种类字段
    • IDE 集成
    • 字段部分响应

    同时,以下是当前不支持的工具 v2.0:

    • Android Studio 支持 Cloud Endpoints 1.0
    • Android Studio 代码验证和 Cloud Endpoints 1.0 的快速修复

    那么,关于“增强器”方法,您检查过这是否是 包含在上述功能中?如果是这样,你的唯一方法 要做的是检查等效功能或再次降级到 v1.0。

    这不是我希望的答案,但至少在他们正式支持这些功能之前,我们不应该迁移到 Endpoints Framework v2.0。

    【讨论】:

      猜你喜欢
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多