2011-09-06 6 views
14

가 나는 다음과 같은 오류오류 유형 java.io.File에 [모호한 생성자의 인자 타입]

org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'fileBean' defined in class path resource [context.xml]: 
Unsatisfied dependency expressed through constructor argument with index 0 of type 
[java.net.URI]: Ambiguous constructor argument types - did you specify the correct 
bean references as constructor arguments? 

납니다

<bean id="fileBean" class="java.io.File"> 
    <constructor-arg type="java.lang.String" 
        value="$prop{file.path.property}" />  
    </bean> 

다음 스프링 빈 설정이 있습니다 한과 콩을 만들 때 단일 String 매개 변수로 java.io.File에 대한 하나의 생성자 만 있으므로이 이유가 모호한 것인지 잘 모르겠습니다. 어떤 도움을 주셔서 감사합니다.

답변

26

찾을 수있는 현상을 설명하는 this link이 있습니다.이 지정된 인수 인덱스가없는 경우 스프링은 유형별 인수와 일치합니다. 이 경우 Spring은 단일 String 인자를 취하여 java.io.File 생성자에 전달합니다.이 경우 생성자는 TWO 문자열입니다. constructor-arg 인덱스를 지정하면이 문제를 해결할 수 있습니다.

<bean id="fileBean" class="java.io.File"> 
    <constructor-arg index="0" 
        type="java.lang.String" 
        value="$prop{file.path.property}" />  
</bean> 
4

바로 여기 내 두 센트입니다. 오늘 똑같은 문제가있었습니다. Spring이 XML 설정을 읽고 필요한 모든 빈을 생성 할 수 있는지 확인하기위한 단위 테스트를했습니다. 잘못된 XML 파일을 편집 중이기 때문에 실패했습니다. 나는 소스 컨트롤에서 올바른 버전 대신 Ant 빌드에서 "dist"버전을 편집하고있었습니다.

학습 : XML 예외 파일 (XML 파일 경로 사용) 매우 가깝게!

+0

같은 일이 있었는데 예외는 내가 편집 한 다른 xml 파일에있는 것으로 판명되었습니다. –