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();
有人知道为什么会发生?
感谢