参考:https://blog.csdn.net/w1014074794/article/details/51892619/
异常信息:
java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration] from ClassLoader [sun.misc.Launcher$AppClassLoader@73d16e93]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:656)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:553)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:538)
at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:596)
......................
Caused by: java.lang.ClassNotFoundException: org.springframework.cloud.client.loadbalancer.LoadBalancedRetryFactory
打开pom.xml文件,在Dependency Hierarchy(依赖列表)中查看jar包的依赖层次关系。
在过滤栏中输入log4j,右侧出现了log4j相关包的依赖结构,左侧则是pom.xml全部依赖包的列表展示。
直接在右侧选中zookeeper底下的slf4j的jar包,右键选择Exclude,然后保存pom.xml。这样在加载zookeeper的jar包时就不会再加载slf4j的jar包。
修改后对应的dependency文件如下:
-
<dependency>
-
<groupId>org.apache.zookeeper</groupId>
-
<artifactId>zookeeper</artifactId>
-
<version>3.4.6</version>
-
<exclusions>
-
<exclusion>
-
<artifactId>slf4j-log4j12</artifactId>
-
<groupId>org.slf4j</groupId>
-
</exclusion>
-
</exclusions>
-
</dependency>
这样就能通过filter过滤快速找到对应jar,并知道他的依赖关系,快速解决项目中的jar包冲突问题。