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

时间:2017-08-08 12:11:40

标签: java json jackson jwt glassfish-4

我尝试验证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;

2 个答案:

答案 0 :(得分:5)

检查您的依赖关系图是否正在提取正确的版本 Jackson-databind jar

它抱怨的方法在版本 2.4.0 以及 jackson-databind.jar

之后可用

如果你的类路径中有不同版本的jar,那么它就不会提供所需的方法。

答案 1 :(得分:1)

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

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