由java.lang.NoClassDefFoundError:com/fasterxml/jackson/databind/Module在IntelIj的spring starter项目中引起

Pro*_*mer 2 java maven runtimeexception spring-data-jpa

在我的spring starter项目中,我正在尝试使用JPA进行API调用.我pom.xml看起来像这样:

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>demo</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.8.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.5</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时会出现错误

java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/Module

我为此搜索了很多.但找不到确切的解决方案.请任何人帮我解决这个问题.提前致谢.

hel*_*ark 7

spring-boot-starter-web已经包括杰克逊.您不应该覆盖托管版本,否则不同Jackson库之间的版本可能不同,从而导致ClassNotFoundException.

从pom中删除它:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

并使用正确版本的传递依赖.

或者当您将Jackson添加到您的pom时,只是不要使用任何版本号,因为父项目依赖关系管理已经包含具有一致版本的所有jackson库.


小智 2

尝试 2 个选项:

 <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.8</version>
Run Code Online (Sandbox Code Playgroud)

或者

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.3</version>
Run Code Online (Sandbox Code Playgroud)