【问题标题】:Jackson Error : java.lang.NoSuchMethodError: `com.fasterxml.jackson.databind.JsonNode.asText(Ljava/lang/String;)Ljava/lang/String`杰克逊错误:java.lang.NoSuchMethodError:`com.fasterxml.jackson.databind.JsonNode.asText(Ljava/lang/String;)Ljava/lang/String`
【发布时间】:2018-01-16 00:09:31
【问题描述】:

我尝试验证 JWT 身份验证令牌,

JWTVerifier verifier = JWT.require(Algorithm.HMAC256("secret")).withIssuer("siat").build();
String token=httpRequest.getParameter("token");
DecodedJWT decodedJWT = verifier.verify(token);

以下是异常堆栈跟踪:

java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.JsonNode.asText(Ljava/lang/String;)Ljava/lang/String;

【问题讨论】:

  • 您使用的是哪个版本的 java-jwt?
  • @KDavid-Valerio 3.1.0
  • 请将您的pom.xml 添加到问题中。

标签: java json jackson jwt glassfish-4


【解决方案1】:

检查你的依赖图是否拉取了正确的版本 Jackson-databind jar

它抱怨的方法在 jackson-databind.jar

2.4.0 版本中可用

如果您的类路径中有旧版本的 jar,那么它将无法提供所需的方法。

【讨论】:

  • 感谢您的回答。问题是我的 POM 文件中的依赖项与 GlassFish 模块之间存在冲突。
  • @CHHIBIAMOR 乐于助人
  • Glassfish 依赖也是我的问题:glassfish-embedded-all。
【解决方案2】:

如果您检查任何 maven 存储库中的 java-jwt 依赖项,例如在 MVN Repository 中,您将在编译依赖项之间选择所需的 jackson-databind 版本(即引发 java.lang.NoSuchMethodError 异常的版本) )。

在您的情况下,对于 java-jwt 3.1.0 版本,您必须拥有 jackson-databind 版本 2.8.4 或新的 2.9.0。

【讨论】:

    猜你喜欢
    • 2016-02-07
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多