2016년 7월 25일 월요일

[Spring Framework4]스프링4에서ref local에러,cvc-complex-type.3.2.2: 'local' 속성은 'ref' 요소에 나타날 수 없습니다. -스프링실무교육학원

[Spring Framework4]스프링4에서ref local에러,cvc-complex-type.3.2.2: 'local' 속성은 'ref' 요소에 나타날 수 없습니다. -스프링실무교육학원

스프링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>

댓글 없음:

댓글 쓰기