谷歌驱动器dredit错误java.lang.NoSuchMethodError:com.google.api.clie



尝试运行Google驱动器示例时,我总是会收到下面解释的错误。我检查了配置,它看起来是正确的。使用了appengine eclipse插件的最新版本。抛出的错误看起来像是方法:com.google.api.client.HttpRequestFactory.buildRequest在运行时不可用。这是一个不推荐使用的方法,但在编译时没有给出任何错误。有人遇到过同样的情况吗?

012-12-16 08:52:001.050 servlet未捕获异常java.lang.NoSuchMethodError:com.google.api.client.HttpRequestFactory.buildRequest(Ljava/lang/String;Lcom/google/api/client/http/GenericUrl;Lcom/google/api/customer/http/HttpContent;)Lcom/google/api/client/HttpRequest;网址:com.google.api.client.googleapis.services.AbstractGoogleClientRequest.buildHttpRequest(AbstractGoogleClientRequest.java:290)网址:com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:396)网址:com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:328)网址:com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:449)在it.contextsolutions.drived.CredentialMediator.getUserInfo(CredentialMediator.java:211)在it.contextsolutions.drived.CredentialMediator.getActiveCredential(CredentialMediator.java:312)在it.contextsolutions.drived.DrEditServlet.getCredentialMediator(DrEditServlet.java:98)在it.contextsolutions.drived.DrEditServlet.getClientId(DrEditServlet.java:143)在it.contextsolutions.drived.StartPageServlet.doGet(StartPageServlet.java:46)位于javax.servlet.httpHttpServlet.service(HttpServlet.java:617)位于javax.servlet.httpHttpServlet.service(HttpServlet.java:717)网址:org.mortbay.japty.servlet.ServletHolder.handle(ServletHolder.java:511)网址:org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(servlet处理程序.java:1166)">

问题是事实上drEdit示例仍然有GAE 1.6.3版本库,并且您从较新版本添加了GAE API(和drive/oauth2-API)。

只需在web/web-INF/lib下检查您的项目来源-您将有许多相同jar但不同版本的复制:

  • appengine-api-xxx-1.6.3(来自drEdit来源)和appengine-api-xxx-1.07.4(由Eclipse中的Google插件添加)
  • google-api-client-xxxx-1.10.3-beta.jar(来源于drEdit)和google-api-client-xxxx-1.012.0-beta(由Eclipse插件添加)
  • google-api-services-xxx-1.7.2-beta(来源于drEdit)和google-api.services-xxx-1.012.0-beta)(由Eclipse插件添加)

通过删除旧版本的jar来简单地清理web/web-INF/lib文件夹-在我的情况下,这很有帮助。

我的工作方式:

查看googledrive-sdk示例,将其复制到您的工作区,但删除WEB-INF/lib中所有过期的库。

添加Drive-SDK和OAuth2 API,这将自动将所有需要的库文件添加到WEB-INF/lib。

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

相关内容

最新更新