1

当我尝试执行从这里获得的 Google 身份验证示例代码时,我遇到了一个神秘的错误: https ://developers.google.com/google-apps/calendar/instantiate

我什至不确定哪些信息是相关的,所以我将从头开始。我直接复制并粘贴了代码。我所做的唯一更改是:

  1. 我在需要的地方插入了自己的身份验证信息
  2. 我创建了一个主要方法。
  3. 我导入了一些额外的类,包括com.google.api.client.http.UrlEncodedContent

我的修改版本在这里:https ://gist.github.com/Glank/cac68a658a9b1aeb393c

我使用以下 Maven 命令构建并运行代码:

mvn clean install
mvn exec:java -Dexec.mainClass="org.mu.TestServlet"

我的 pom 依赖项在这里:https ://gist.github.com/Glank/50fe98a9575e10df6a68

除了一些编码警告之外,代码构建和执行没有任何问题。它给了我一个链接。我去,允许自己访问数据并被重定向到带有代码参数的 uri。在提示“授权码是什么?”后,我将参数复制并粘贴到标准输入中。然后突然,我得到以下异常:

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NoSuchMethodError: com.google.api.client.http.UrlEncodedContent: method <init>()V not found
    at com.google.api.client.auth.oauth2.draft10.AccessTokenRequest.executeUnparsed(AccessTokenRequest.java:444)
    at com.google.api.client.auth.oauth2.draft10.AccessTokenRequest.execute(AccessTokenRequest.java:470)
    at org.mu.TestServlet.setUp(TestServlet.java:54)
    at org.mu.TestServlet.main(TestServlet.java:23)

我查看了 URLEncodeContent 和 AccessTokenRequest 的源代码:

没有为 UrlEncodedContent 实现构造函数。从我读过的内容来看,当调用默认构造函数但实现了另一个构造函数时会引发此异常:未找到方法 init()v

任何帮助将不胜感激。

4

1 回答 1

0

我不确定是什么导致了错误,但我设法在从头开始并忽略了那个特定的代码示例后让它工作。我认为问题在于我的 pom 中的依赖项版本不匹配 - 现在它们都是 1.15.1-rc 版本。无论如何,如果其他人有类似的问题,这是我的工作代码:

https://github.com/Glank/MinimalGoogleCalendarWebAccess

于 2013-07-02T16:43:16.643 回答