2

设想

我有一种情况,春天正在寻找一个类的两个版本。

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,然后对重复的类进行类型搜索。

诀窍是我使用 sysdeo 插件和 eclipse、maven 和几个战争项目,所以事情比这要复杂一些。

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

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

没有同龄人的建议,我想我需要自己写点东西。

4

1 回答 1

0

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

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

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

我的解决方案是为 Eclipse 中的本地构建创建一个 Maven 配置文件,我用它来排除两个 jar。

于 2012-10-10T23:12:17.773 回答