2017-08-08 486 views
1

我试图验证JWT认证令牌,杰克逊错误:java.lang.NoSuchMethodError:`com.fasterxml.jackson.databind.JsonNode.asText(Ljava /郎/字符串;)Ljava /郎/ String`

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; 
+0

您正在使用哪个版本的java-jwt? –

+0

@ KDavid-Valerio 3.1.0

+0

请将您的'pom.xml'添加到问题中。 – unwichtich

回答

1

检查您的依赖关系图,无论是拉动 杰克逊 - 数据绑定JAR的正确版本

它抱怨的方法在版本起杰克逊databind.jar

如果不知为何,你在你的classpath有罐子的旧版本那就不是服务于需要方法的2.4.0

+0

谢谢你的回答。问题是我的POM文件和GlassFish模块之间的依赖性冲突。 –

+1

@CHHIBIAMOR乐于提供帮助 – Rizwan

1

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

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

相关问题