在tomcat6中查找特定应用程序的类加载器中的jar

时间:2012-10-10 07:38:26

标签: java tomcat6 classloader

方案

我遇到一种情况,即spring正在找到一个类的两个版本。

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.springframework.scheduling.quartz.SchedulerFactoryBean] is defined: expected single matching bean but found 2:

我的问题是找到重复类的来源。

通常,我只是使用jdgui来打开/解编译web-inf / lib和tomcat / lib文件夹中的所有jar文件,然后对重复的类进行类型搜索。

诀窍是我正在使用带有eclipse,maven和几个war项目的sysdeo插件,所以事情比这复杂得多。

我的问题 是否有任何GUI或开源库可用于查找适用于 Tomcat6 的特定类的jar的位置。

过去,我在IBM Websphere的管理控制台上使用了一个非常好的工具,允许我浏览类加载器树。

我的同行没有得到建议,我想我需要自己写一些东西。

1 个答案:

答案 0 :(得分:0)

感谢评论方面的帮助,我能够提出以下解决方案。

带有我的spring配置的模块正被编译到war的lib文件夹中(即/target/xxxx-war/WEB-INF/lib/myspringmodule.jar)

Sysdeo tomcat文件夹配置为将/ myspringmodule / target / classes添加到类路径中,从而允许我在eclipse中简单地重新编译。这有效地在类路径上添加两个重复的弹簧配置,触发两次注释扫描,从而添加两个对象。

我的解决方案是在eclipse中为本地构建创建一个maven配置文件,用于排除两个jar。