簡體   English   中英

谷歌驅動器dredit錯誤java.lang.NoSuchMethodError:com.google.api.client.http.HttpRequestFactory.buildRequest

[英]google drive dredit error java.lang.NoSuchMethodError: com.google.api.client.http.HttpRequestFactory.buildRequest

嘗試運行Google雲端硬盤示例時,總是會出現以下錯誤。 我檢查了配置,它看起來正確。 使用了最新版本的appengine eclipse插件。 拋出的錯誤看起來好像方法com.google.api.client.http.HttpRequestFactory.buildRequest在運行時不可用。 這是不建議使用的方法,但在編譯時不會給出錯誤。 有人遇到過同樣的情況嗎?

012-12-16 08:52:01.050 Uncaught exception from servlet

    java.lang.NoSuchMethodError: com.google.api.client.http.HttpRequestFactory.buildRequest(Ljava/lang/String;Lcom/google/api/client/http/GenericUrl;Lcom/google/api/client/http/HttpContent;)Lcom/google/api/client/http/HttpRequest;
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.buildHttpRequest(AbstractGoogleClientRequest.java:290)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:396)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:328)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:449)
    at it.contextsolutions.drived.CredentialMediator.getUserInfo(CredentialMediator.java:211)
    at it.contextsolutions.drived.CredentialMediator.getActiveCredential(CredentialMediator.java:312)
    at it.contextsolutions.drived.DrEditServlet.getCredentialMediator(DrEditServlet.java:98)
    at it.contextsolutions.drived.DrEditServlet.getClientId(DrEditServlet.java:143)
    at it.contextsolutions.drived.StartPageServlet.doGet(StartPageServlet.java:46)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)     
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)     
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    "

問題實際上是drEdit示例仍然具有GAE 1.6.3版本庫,並且您從較新的版本中添加了GAE API(和drive / oauth2 api)。

只需在web / WEB-INF / lib下檢查項目的源代碼-您將獲得許多相同罐子的副本,但版本不同:

  • appengine-api-xxx-1.6.3(從drEdit來源獲得)和appengine-api-xxx-1.7.4(由Eclipse中的Google插件添加)
  • google-api-client-xxx-1.10.3-beta.jar(從drEdit源獲取)和google-api-client-xxx-1.12.0-beta(由Eclipse插件添加)
  • google-api-services-xxx-1.7.2-beta(從drEdit源獲取)和google-api-services-xxx-1.12.0-beta(由Eclipse插件添加)。

通過刪除jar的舊版本,可以簡單地清理web / WEB-INF / lib文件夾-在我看來,這很有幫助。

我的工作方式:

查看google-drive-sdk-samples,將其復制到您的工作區中,但刪除WEB-INF / lib中所有過期的庫。

添加Drive-SDK和OAuth2 API,這會將所有必需的庫文件自動添加到WEB-INF / lib。

現在您的資料庫是一致的,您一切順利!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM