Java-JWT 与 Jackson 版本冲突导致 NoClassDefFoundError 错误解决方法
项目使用了 java-jwt,但是由于 java-jwt 中使用的 jackson 版本与项目中使用的 jackson 版本不一致,导致以下报错: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/json/JsonMapper
该问题可能是因为 java-jwt 使用的 jackson 版本与项目中使用的 jackson 版本不兼容所导致的。解决方法如下:
-
升级项目中使用的 jackson 版本,使其与 java-jwt 中的版本一致。
-
在项目中使用 java-jwt 时,将其依赖的 jackson 库进行排除,然后手动添加项目中使用的 jackson 库。
例如,如果你使用的是 Maven,可以在 pom.xml 中进行如下配置:
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>x.x.x</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>x.x.x</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>x.x.x</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>x.x.x</version>
</dependency>
其中,x.x.x 表示项目中使用的 jackson 版本。
原文地址: https://www.cveoy.top/t/topic/ovmO 著作权归作者所有。请勿转载和采集!