【问题标题】:google cloud storage - getting started谷歌云存储 - 入门
【发布时间】:2015-09-02 16:17:35
【问题描述】:

我正在尝试遵循 GCS 入门指南 - https://cloud.google.com/appengine/docs/java/googlecloudstorageclient/getstarted

它说我应该下载客户端库,我是用 git 完成的。

然后它说:

在“库”选项卡中,单击“添加外部 Jar”。您必须添加 以下 JAR:

appengine-gcs-client.jar 来自您安装 Cloud Storage 的位置 客户端库

guava-15.0.jar 来自您安装 Cloud Storage 客户端的位置 图书馆

joda-time-2.3.jar 来自您安装 Cloud Storage 客户端的位置 图书馆

App Engine 安装子目录中的 appengine-testing.jar /lib/testing。

App Engine 安装子目录 /lib/impl 中的 appengine-api.jar。

App Engine 安装子目录中的 appengine-api-stubs.jar /lib/impl.

但下载中绝对没有jar,

我错过了什么??

编辑: 我设法在网上找到了丢失的罐子,现在我得到了:

线程“主”java.util.ServiceConfigurationError 中的异常: com.google.appengine.spi.FactoryProvider:提供者 com.google.appengine.api.search.ISearchServiceFactoryProvider 可以 不被实例化 java.util.ServiceLoader.fail(ServiceLoader.java:224) 在 java.util.ServiceLoader.access$100(ServiceLoader.java:181) 在 java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:377) 在 java.util.ServiceLoader$1.next(ServiceLoader.java:445) 在 com.google.appengine.spi.ServiceFactoryFactory$1.run(ServiceFactoryFactory.java:148) 在 com.google.appengine.spi.ServiceFactoryFactory$1.run(ServiceFactoryFactory.java:130) 在 java.security.AccessController.doPrivileged(Native Method) 在 com.google.appengine.spi.ServiceFactoryFactory.getProvidersUsingServiceLoader(ServiceFactoryFactory.java:130) 在 com.google.appengine.spi.ServiceFactoryFactory.access$100(ServiceFactoryFactory.java:39) 在 com.google.appengine.spi.ServiceFactoryFactory$RuntimeRegistry.(ServiceFactoryFactory.java:109) 在 com.google.appengine.spi.ServiceFactoryFactory.getFactory(ServiceFactoryFactory.java:67) 在 com.google.appengine.api.datastore.DatastoreServiceFactory.getFactory(DatastoreServiceFactory.java:78) 在 com.google.appengine.api.datastore.DatastoreServiceFactory.getDatastoreService(DatastoreServiceFactory.java:20) 在 com.google.appengine.api.datastore.DatastoreServiceFactory.getDatastoreService(DatastoreServiceFactory.java:40) 在 com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService.(LocalRawGcsService.java:87) 在 com.google.appengine.tools.cloudstorage.dev.LocalRawGcsServiceFactory.createLocalRawGcsService(LocalRawGcsServiceFactory.java:29) 在 com.google.appengine.tools.cloudstorage.GcsServiceFactory.createRawGcsService(GcsServiceFactory.java:66) 在 com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:44) 在 com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:40) 在 com.google.appengine.demos.LocalExample.(LocalExample.java:54) 在 com.google.appengine.demos.LocalExample.main(LocalExample.java:129) 引起:java.lang.VerifyError:类 com.google.appengine.repackaged.com.google.appengine.api.search.SearchServicePb$DeleteDocumentRequest 覆盖最终方法 getUnknownFields.()Lcom/google/appengine/repackaged/com/google/protobuf/UnknownFieldSet; 在 java.lang.ClassLoader.defineClass1(Native Method) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:800) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 com.google.appengine.api.search.SearchServiceFactoryImpl.(SearchServiceFactoryImpl.java:13) 在 com.google.appengine.api.search.ISearchServiceFactoryProvider.(ISearchServiceFactoryProvider.java:16) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 方法)在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 java.lang.Class.newInstance(Class.java:379) 在 java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373) ... 还有 18 个

似乎本指南从未经过实际测试,完全是浪费时间,还是什么?

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    我遇到了同样的麻烦,什么对我有用:

    1. 将库(appengine + appengine-testing)更新到相同版本
      • 我曾经拥有 appengine 版本 1.9.18 和 appenginte-testing 版本 1.4.0。现在我有两个版本 1.9.25(目前最新)
    2. 添加了所有必要的库
      • 缺少 appengine-api-labs 和 appengine-api-stubs

    我的 build.gradle 配置现在包含以下内容:

    dependencies {
        appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.25'
        compile 'com.google.appengine:appengine-endpoints:1.9.25'
        compile 'com.google.appengine:appengine-endpoints-deps:1.9.25'
        compile 'com.googlecode.objectify:objectify:5.1.5'
        compile 'javax.servlet:servlet-api:2.5'
        testCompile 'junit:junit:4.12'
        testCompile 'com.google.appengine:appengine-testing:1.9.25'
        testCompile 'com.google.appengine:appengine-api-labs:1.9.25'
        testCompile 'com.google.appengine:appengine-api-stubs:1.9.25'
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-10
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 2012-08-19
      • 2017-01-11
      相关资源
      最近更新 更多