2012-05-18 1 views
0

제 모델의 인수로 타사 라이브러리 클래스 XYZ를 사용하고 있습니다. XYZ에는 기본 생성자가 없습니다. 그래서 봄은 에러 메시지를주는 빈을 생성 할 수 없다.기본 생성자가없는 클래스의 봄 클래스 bean 인스턴스화

org.springframework.web.util.NestedServletException: Request processing failed; 

nested exception is org.springframework.data.mapping.model.MappingInstantiationException: 

Could not instantiate bean class [org.abc.def.XYZ]: No default constructor found;nested exception is java.lang.NoSuchMethodException: org.abc.def.XYZ./<init/>() 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:681) 

이것을 해결하려면 어떻게해야합니까? XYZ에 기본 생성자를 추가 할 수 없습니다.

Dispatcher 서블릿에서 다음을 추가했지만 여전히 작동하지 않습니다.

<bean name="token" class="org.abs.def.Xyx"> 
    <constructor-arg name="arg1" value="val1"/> 
    <constructor-arg name="arg2" value="val2"/> 
    <constructor-arg name="arg3" value="val3"/> 
</bean> 

감사합니다.

답변

3

XML 파일에서이를 인스턴스화하기 위해 필요한 모든 매개 변수를 전달하는 스프링 빈으로 정의 할 수 있습니다.

샘플 :

<bean id="xyz" class="com.a.b.Xyz" > 
    <constructor-arg index="0" ref="anotherBean"/> 
    <constructor-arg index="1" value="12"/> 
</bean> 
+0

나는 그 일을 시도했지만 작동하지 않습니다. 같은 오류가 발생했습니다! – shailesh

+0

어디에서 어떻게 추가 했습니까? 스프링 컨텍스트를 어떻게 초기화합니까? 어떤 버전의 스프링을 사용하고 있습니까? – fmucar

0

당신은 the documentation에 설명 된대로 응용 프로그램 컨텍스트 설정 파일에 <constructor-arg> 요소를 제공해야합니다.