0%

jar包冲突

jar包冲突

jar包冲突

问题

启动报错:

1
Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/jsontype/PolymorphicTypeValidator

原因

jar包冲突,jackjson2.9.8中没有类PolymorphicTypeValidator

image-20210518094949654

解决

定位

如何定位冲突jar与xml

定位jar
  1. 根据报错Caused by去依赖中找com/fasterxml/jackson/databind/jsontype/PolymorphicTypeValidator

    1
    Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/jsontype/PolymorphicTypeValidator

    image-20210518095608269

  2. 根据报错类

    1
    java.lang.IllegalStateException: Failed to introspect Class [com.youlu.common.config.RedisConfig] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]

    image-20210518095808710

jar定位xml

命令行输入mvn命令mvn dependency:tree,会展示maven依赖拓扑关系,然后Ctrl+F搜索

image-20210518102441361

解决

一般保留高版本jar;也可能保留低版本jar,重新实现使用高版本的地方。

pom.xml去除jar

1
2
3
4
5
6
7
8
9
10
11
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-all</artifactId>
<version>${seata.vsersion}</version>
<exclusions>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</exclusion>
</exclusions>
</dependency>