方案
我遇到一种情况,即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的管理控制台上使用了一个非常好的工具,允许我浏览类加载器树。
我的同行没有得到建议,我想我需要自己写一些东西。
答案 0 :(得分:0)
感谢评论方面的帮助,我能够提出以下解决方案。
带有我的spring配置的模块正被编译到war的lib文件夹中(即/target/xxxx-war/WEB-INF/lib/myspringmodule.jar)
Sysdeo tomcat文件夹配置为将/ myspringmodule / target / classes添加到类路径中,从而允许我在eclipse中简单地重新编译。这有效地在类路径上添加两个重复的弹簧配置,触发两次注释扫描,从而添加两个对象。
我的解决方案是在eclipse中为本地构建创建一个maven配置文件,用于排除两个jar。