Java WebappclassLoader和StandardclassLoader jar冲突

Java WebappclassLoader和StandardclassLoader jar冲突,java,eclipse,tomcat,classloader,Java,Eclipse,Tomcat,Classloader,我有一个问题,我相信是由于Tomcat,但我不知道去哪里,因为我不是太了解这个问题 问题是,我有几个项目使用log4j,最近在启动服务器时出现以下错误: log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variable. log4j:ERROR The class "org.apache.log4j.Appender" was lo

我有一个问题,我相信是由于Tomcat,但我不知道去哪里,因为我不是太了解这个问题

问题是,我有几个项目使用log4j,最近在启动服务器时出现以下错误:

log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by 
log4j:ERROR [org.apache.catalina.loader.StandardClassLoader@a9ae05] whereas object of type 
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by [WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
读了一些书,我发现它指出这是因为同一个罐子有多个副本。 现在,我相信这是Tomcat的错。我在Eclipse中制作了第二台服务器,新服务器可以正常启动,所以这听起来像是一个混乱的服务器配置问题


因此,我假设我的旧Tomcat正在加载一个jar文件,这会导致冲突,而新的Tomcat没有这个jar文件来导致其配置中的冲突?我的问题是,;如何查找罪魁祸首jar或配置错误?

使用类似jfind()的工具,将冲突的类和目录作为旧tomcat进行搜索。这将显示是否有多个jar包含指定的类。然后你的工作就很简单了,只需移除其中一个重复的罐子。谢谢-这是一个有用的提示。非常好的工具嗨arnehehe,你有确切的解决方案吗?我在Tomcat6上得到了相同的上述错误,但在Tomcat8.Hmm上没有得到。尝试查看Tomcat6的lib\文件夹中是否有冲突的jar;也可以在.war的\WEB-INF\lib文件夹中找到。您的war库和tomcat库中相同库的冲突版本给我带来了问题