2012-12-16 111 views
2

試圖運行谷歌驅動器樣本我總是得到下面解釋的錯誤。 我檢查了配置,它看起來正確。 已使用最新版本的appengine eclipse插件。 拋出的錯誤看起來好像方法:com.google.api.client.http.HttpRequestFactory.buildRequest 在運行時不可用。這是一個不推薦的方法,但在編譯時沒有錯誤。 有沒有人遇到過這種情況?谷歌驅動器信譽錯誤java.lang.NoSuchMethodError: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) 
    " 
+1

這不能被讀取。請通過添加指向上述示例的鏈接來修改它,告訴您的環境並將代碼放在代碼引號中。 –

+0

我試圖更新SDK到最新版本,並幫助。 – 2012-12-26 11:03:04

回答

1

問題是事實drEdit樣品中仍然有GAE 1.6.3版本庫,並從較新的版本中加入GAE的API(和驅動器/的oauth2 API)。

只是檢查下網絡/ WEB-INF/lib目錄項目的來源 - 你將擁有相同的罐子許多dublications,但不同的版本:

  • 的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文件夾 - 在我的情況下它有所幫助。

0

我的方式,使其工作:

退房的谷歌驅動-SDK-樣品,把它複製到你的工作空間,但刪除所有外的日期圖書館WEB-INF/lib目錄下。

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

現在你的圖書館是一致的,你很好去!