启动springboot时报错 APPLICATION FAILED TO START 包冲突

2023-12-29 18:37:54

启动springboot时报错 APPLICATION FAILED TO START 包冲突

problem

具体日志如下

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:823)

The following method did not exist:

    com.fasterxml.jackson.databind.Module.getTypeId()Ljava/lang/Object;

The calling method's class, org.springframework.http.converter.json.Jackson2ObjectMapperBuilder, was loaded from the following location:

    jar:file:/Users/dream/.m2/repository/org/springframework/spring-web/5.3.13/spring-web-5.3.13.jar!/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.class

The called method's class, com.fasterxml.jackson.databind.Module, is available from the following locations:

    jar:file:/Users/dream/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.3.3/jackson-databind-2.3.3.jar!/com/fasterxml/jackson/databind/Module.class

The called method's class hierarchy was loaded from the following locations:

    com.fasterxml.jackson.databind.Module: file:/Users/dream/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.3.3/jackson-databind-2.3.3.jar


Action:

Correct the classpath of your application so that it contains compatible versions of the classes org.springframework.http.converter.json.Jackson2ObjectMapperBuilder and com.fasterxml.jackson.databind.Module


Process finished with exit code 1

reason

报错日志的意思

  • com.fasterxml.jackson.databind.Module.getTypeId 这个方法不存在
  • 此方法对应的一个类 json.Jackson2ObjectMapperBuilder 来自 spring-web-5.3.13.jar 包
  • 此方法对应的另一个类 jackson.databind.Module 来自 jackson-databind-2.3.3.jar

观察maven依赖

  • 正常项目的依赖是 spring-web-5.3.13.jar 和 jackson-databind-2.13.0.jar
  • 异常项目的依赖是 spring-web-5.3.13.jar 和 jackson-databind-2.3.3.jar
  • 可以看到是 第二个包的版本低了,导致出现了包冲突

对比pom文件

  • 对比正常和异常项目,发现正常项目 springboot 依赖是来自parent节点
  • 异常项目 springboot 依赖是pom中 自定义

Snipaste_2023-12-29_15-23-11

solution

采用parent方式引入springboot可以解决问题

Snipaste_2023-12-29_15-34-46

文章来源:https://blog.csdn.net/qubes/article/details/135292475
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。