引用一个jar包后报了一个错
java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(Ljavax/servlet/ServletConfig;)Lorg/apache/tomcat/InstanceManager;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/WEB_002dINF/views/admin/main_jsp, and the class loader (instance of java/net/URLClassLoader) for the method's defining class, org/apache/jasper/runtime/InstanceManagerFactory, have different Class objects for the type org/apache/tomcat/InstanceManager used in the signature
错误打印一大堆,找到关键字have different Class objects for the type org/apache/tomcat/InstanceManager
有不同的类对象org/apache/tomcat/InstanceManager,加载多个相同的类会出错,这是因为maven传递依赖导致的
一看是tomcat有关的包冲突,打开jar包依赖树,找到冲突的包
选中冲突的jar包右键exclude maven artifact即可,知道具体包名可以直接在pom中手动写exclusion
<dependency>
<groupId>net.oschina.likaixuan</groupId>
<artifactId>excelutil</artifactId>
<version>1.5.4</version>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
————————————————
版权声明:本文为CSDN博主「HSuperYue」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq632680822/article/details/80747704