java.lang.LinkageError:Spring MVC和Thymeleaf的加载程序约束冲突

java.lang.LinkageError:Spring MVC和Thymeleaf的加载程序约束冲突,java,spring,spring-mvc,thymeleaf,Java,Spring,Spring Mvc,Thymeleaf,我正在使用SpringMVC和Thymeleaf构建我的应用程序。我还使用Log4j进行日志记录。 调用其中一个正在加载Thymeleaf模板的服务时,出现以下错误: Handler dispatch failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFa

我正在使用SpringMVC和Thymeleaf构建我的应用程序。我还使用Log4j进行日志记录。 调用其中一个正在加载Thymeleaf模板的服务时,出现以下错误:

Handler dispatch failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/apache/catalina/loader/ParallelWebappClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of java/net/URLClassLoader) for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature
执行以下代码行时引发此错误:

ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
如果我再次调用相同的服务(不进行任何更改或重新启动/清理服务器),我会收到不同的错误:

 Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.thymeleaf.templateresolver.ClassLoaderTemplateResolver
gradle配置文件为:

compile group: 'org.thymeleaf', name: 'thymeleaf', version: '3.0.11.RELEASE'
compile group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '3.0.11.RELEASE'
使用的服务器是Tomcat


非常感谢您的帮助

似乎在根类装入器和webapp的WAR文件中都有slf4j jar文件。尝试使用maven将其标记为“已提供”,这样它就不会卷入战争。这样java就不会对在多个类加载器中加载相同的类感到困惑