2014-06-07 197 views
0

我们已经实现了一个批处理过程,直到现在还没有问题。Google云端硬盘文件:com.google.api.client.http.HttpHeaders.getAuthenticateAsList

从今天下午开始,它开始出现错误,过程结束,处理数千个文件。

正如我们可以检查,该过程不跳转到相同的文件,它是完全随机的。这可能是当它处理的文件第200,第1000,第四十五万...

这是给我们的错误:

java.lang.NoSuchMethodError: com.google.api.client.http.HttpHeaders.getAuthenticateAsList()Ljava/util/List; 
at com.google.api.client.auth.oauth2.Credential.handleResponse(Credential.java:245) 
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:992) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460) 
at com.EjecucionExpress.EjecutaExpress.obtenTamanios(EjecutaExpress.java:588) 
at com.EjecucionExpress.EjecutaExpress.obtenTamaniosRaid(EjecutaExpress.java:701) 
at com.EjecucionExpress.EjecutaExpress.doGet(EjecutaExpress.java:159) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

..............

在“EjecutaExpress”班线588,在“obtenTamanios”的方法,我们的代码:

File file = service.files().get(fileID).execute(); 

这是我们必须得到谷歌云端硬盘服务的代码实现。

public static final List<String> SCOPES = Arrays.asList(
      "https://www.googleapis.com/auth/drive", 
      "https://www.googleapis.com/auth/userinfo.email", 
      "https://www.googleapis.com/auth/userinfo.profile"); 

      ----------------------------------------------------------- 

      HttpTransport httpTransport = new NetHttpTransport(); 
      JacksonFactory jsonFactory = new JacksonFactory(); 

      GoogleCredential credential = new GoogleCredential.Builder() 
        .setTransport(httpTransport) 
        .setJsonFactory(jsonFactory) 
        .setServiceAccountUser(emailID) 
        .setServiceAccountId(
          "CLIENT-ID-XXXXXXXXXXXXXX") 
        .setServiceAccountScopes(SCOPES) 
        .setServiceAccountPrivateKeyFromP12File(
          new java.io.File(
            "P12-FILE")) 
        .build(); 
      credential.refreshToken(); 

      Drive service = new Drive.Builder(httpTransport, jsonFactory, null) 
        .setHttpRequestInitializer(credential) 
        .setApplicationName("New Drive Service").build(); 

有人知道为什么会发生?

感谢

回答

1

的驱动器API试图调用this function,这仅是自1.16版本。

您正在使用哪个版本的google-http-java-client?我们有一个类似的问题,从1.15更新到1.18。

相关问题