我正在使用 Spring 2.5.4 并正在创建一个要部署到 Weblogic 上的 Java 应用程序。
我想在我的代码中使用一个外部库(包含在我的应用程序生成的 WAR 文件的 WEB-INF/classes 目录中)中有一个类。我在我的代码中为类的一个对象创建了一个实例变量,并添加了@Autowired 注释和一个getter 和setter。在我的应用程序上下文文件中,我声明了一个库类类型的 bean 并添加了以下内容:
<context:annotation-config />
<context:component-scan base-package="com.mycompany" />
...为了注册一个 AutowiredAnnotationBeanPostProcessor 将扫描类并处理注释。
当我尝试部署应用程序时,出现以下错误:
java.lang.IllegalStateException: Annotation-specified bean name 'myBean' for bean
class [com.mycompany.package.ClassName] conflicts with existing, non-compatible
bean definition of same name and class [com.mycompany.otherPackage.ClassName]
我认为这是因为库中有一个类与我的应用程序代码中的同名(两个类的包名都以“com.mycompany”开头)。NB。这不是我添加的课程,而是不同的课程。有什么办法可以在不更改应用程序中类的名称的情况下绕过这个问题?
感谢您的任何帮助。