2012-12-16 85 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。

现在你的图书馆是一致的,你很好去!