项目使用了 java-jwt,但是由于 java-jwt 中使用的 jackson 版本与项目中使用的 jackson 版本不一致,导致以下报错: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/json/JsonMapper

该问题可能是因为 java-jwt 使用的 jackson 版本与项目中使用的 jackson 版本不兼容所导致的。解决方法如下:

  1. 升级项目中使用的 jackson 版本,使其与 java-jwt 中的版本一致。

  2. 在项目中使用 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 版本。

Java-JWT 与 Jackson 版本冲突导致 NoClassDefFoundError 错误解决方法

原文地址: https://www.cveoy.top/t/topic/ovmO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录