스프링4에서 세터주입등에서 <ref local="빈이름"/>을 사용하면 아래와 같은 오류가 발생한다.
cvc-complex-type.3.2.2: 'local' 속성은 'ref' 요소에 나타날 수
없습니다.
이는 이클립스 스프링 통합의 버그라고 한다.
The http://www.springframework.org/schema/beans/spring-beans.xsd actually
points to the 4.0 XSD, which does NOT have local.
Additionally, There are bugs in eclipse with spring integration that could be
the issue. INT-1353
XML 파일의 Schema Location에서 스프링 버전을 3.2로 수정하자.
아래는 에러발생...
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
<bean
id="hyundaiManager" class="edu.biz.ioc.HyundaiMaker" />
<bean
id="daewooManager" class="edu.biz.ioc.DaewooMaker" />
<bean
id="orderManager" class="edu.biz.ioc.OrderManager">
<property
name="maker">
<ref local="hyundaiManager" />
</property>
</bean>
</beans>
아래는 스프링버전을 3.2로 수정, 오류발생하지 않는다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<bean
id="hyundaiManager" class="edu.biz.ioc.HyundaiMaker" />
<bean
id="daewooManager" class="edu.biz.ioc.DaewooMaker" />
<bean
id="orderManager" class="edu.biz.ioc.OrderManager">
<property
name="maker">
<ref local="hyundaiManager" />
</property>
</bean>
</beans>
댓글 없음:
댓글 쓰기