java - 使用maven在java中实现google身份验证

标签 java maven oauth-2.0

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

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

  1. 我将自己的身份验证信息插入到需要的位置
  2. 我创建了一个 main 方法。
  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 实现构造函数。据我所知,当调用默认构造函数但实现了另一个构造函数时,会引发此异常:method init()v not found

任何帮助将不胜感激。

最佳答案

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

https://github.com/Glank/MinimalGoogleCalendarWebAccess

关于java - 使用maven在java中实现google身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411309/

相关文章:

java - Logcat 错误 - 有人可以解释一下吗?

java - 如何让 AspectJ 和 Lombok 与 maven 协同工作?

java.lang.NoSuchMethodError : org. apache.hadoop.tracing.TraceUtils.wrapHadoopConf 错误

java - Maven:将外部 jar 文件夹添加到类路径

symfony - 同时使用HWIOAuthBundle和LexikJWT

java - 选择给定节点之后的节点

java - 如何逐步提高某事的速度?

Java 集合实现(例如 HashMaps vs HashSet vs HashTable ...),选择错误的代价是什么?

node.js - Node.js 是否有任何 OAuth2 模块可以提供访问 token 验证而无需额外的服务器调用?

rest - Keycloak-Oauth-2身份验证流程