当前位置: 首页 > 知识库问答 >
问题:

如何使用GAE初始化驱动器服务

牧熙云
2023-03-14

我需要在我的GAE应用程序中初始化一个驱动服务。我使用OAuth 2.0和3条腿。我使用普通的谷歌账户(没有服务账户)。我在努力:

GoogleCredential credentials = usuarioService.getGoogleCredentials();
Drive service = new Drive.Builder(TRANSPORT, JSON_FACTORY, credentials).build();

我得到这个错误:

Caused by: java.lang.NoSuchFieldError: MAJOR_VERSION
at com.google.api.services.drive.Drive.<clinit>(Drive.java:48)
at com.google.api.services.drive.Drive$Builder.build(Drive.java:8243)

OAuth 2.0流授权正在工作,但访问驱动器时出现上述错误。

我不认为我的GoogleCredentials是错误的,因为我使用相同的方法来获得授权,以便使用Google Picker。

我从用户那里获得GoogleCredential的方式是:

GoogleCredential credentials = new GoogleCredential.Builder()
    .setClientSecrets(clientId, clientSecret)
    .setJsonFactory(JSON_FACTORY)
    .setTransport(HTTP_TRANSPORT)
    .build()

    .setRefreshToken(user.getOAuth2RefreshToken()) 
    .setAccessToken(user.getOAuth2AccessToken()); //previous Access Token

能帮帮忙吗?

迭戈。

更新 我已经将驱动器库更新到最后一个(v2)和谷歌 -api-客户端 1.18,它仍然无法正常工作。

现在我得到这个错误:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.google.api.services.drive.Drive

更新2想到我在重建GoogleCredential对象时做错了什么,我已经尝试调用Drive。当我从授权流请求原始凭据时,Builder():

final GoogleTokenResponse response = flow.newTokenRequest(authCode).setRedirectUri(callback).execute();     
Credential credential = flow.createAndStoreCredential(response, null);
// Calling to Drive Service
Drive service = new Drive.Builder(httpTransport, jsonFactory, credential).build();

我得到了同样的错误:

Caused by: java.lang.NoSuchFieldError: MAJOR_VERSION

我对日历做了同样的操作,得到了同样的错误

我正在使用下一个库:google api客户端1.18

Google-API-客户端-servlet 1.18

google-api-service-Drive-v 2-1.18

超文本传输协议

谷歌-http-客户端-杰克逊1.18

谷歌oauth客户端1.18

共有1个答案

宗政鸿志
2023-03-14

解决方案:

喝了很多杯咖啡后,我发现了错误。

我已经清理了我的项目中的一些库,我正在使用1.15版本的谷歌库,它正在工作(相同的代码)。

 类似资料:
  • 包实用程序 基类 登录类 App_Constant类 包添加用户 null 现在我的问题是,我已经在基类中创建了公共静态方法openurl(),并且webdriver已经在那里初始化。但是当我在同一个包的其他类和其他包中调用同一个方法时,为什么它会给我WebDriver的nullpointerexception? 是否需要编写代码来初始化webdriver并在每个类中调用browser。如何才能全

  • 初始化 Lotus 驱动程序 当安装 Lotus 数据库的驱动程序时,设置程序会在引擎的 Windows 注册表和 ISAM 格式子键写入一些缺省值。不要直接修改这些设置;请使用应用程序的设置程序来添加、删除、或更改这些设置。下面部分描述 Lotus 数据库驱动程序的初始化和 ISAM Format 设置。 Lotus 初始化设置 Jet\3.5\Engines\Lotus 文件夹包含用来访问外部

  • 初始化 Microsoft Excel 驱动程序 当安装 Microsoft Excel 数据库的驱动程序时,设置程序会在引擎的 Windows 注册表和 ISAM 格式子键写入一些缺省值。不要直接修改这些设置;请使用应用程序的设置程序来添加、删除、或更改这些设置。下列部分描述 Microsoft Excel 数据库驱动程序的初始化和 ISAM Formats 设置。 Microsoft Exce

  • 同事, 你能帮我解决以下问题吗? 我有JavaEE应用程序。它包含一些具有业务逻辑的消息驱动Bean和一些负责整个应用程序配置的不同方面的管理Bean。我想设置bean启动和初始化的顺序。这意味着在管理Bean完成应用程序的初始化之前,容器不应该调用消息驱动Bean。应用程序的初始化包括读取和解析一些配置文件,这需要一些时间。 有WebSphere配置选项吗? 或者它应该只以编程方式完成技巧?

  • 我找不到任何概述如何初始化appium android驱动程序的文档。 无法从转换为属性 我需要向此构造函数传递哪些参数才能使此设置正常工作?