我将旧项目从Spring从2.0.7升级到3.1.1。在我们尝试部署.ear(JBoss 4.3 cp09)后进行此更改后,我们收到错误消息:
创建名称为' com.xxx.xxx.Bean2#193eb05'的bean时出错。在ServletContext资源[/WEB-INF/applicationContext.xml]中定义:通过bean属性表示的不满意的依赖关系' map2' ::创建名称为bean&bean的错误的bean':请求的bean目前在创作:是否存在无法解析的循环引用?嵌套异常是org.springframework.beans.factory.BeanCurrentlyInCreationException:创建名称为' bean1'的错误:请求的bean当前正在创建:是否存在无法解析的循环引用? 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1199)
这是applicationContex.xml的一部分
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="autodetect">
<bean id="bean1" class="com.xxx.xxx.Bean1">
<constructor-arg index="0">
<list>
<bean class="com.xxx.xxx.Bean2" />
<bean class="com.xxx.xxx.Bean3" />
</list>
</constructor-arg>
</bean>
</beans>
这是(部分)Bean2.java
public class Bean2 extends Class2{
// .....
}
这是(部分)Class2.java
public class Class2 {
// ...
private Map<String, Object> map2;
public final Map<String, Object> getMap2() {
return this.map2;
}
public final void setMap2(Map<String, Object> map2) {
this.map2 = map2;
}
}
我们在地图map2
上遇到了一些问题。不幸的是,我无法更改default-autowire属性的值。