2012-06-10 2 views
0

다음 Pro 봄 3 책으로 Spring3을 배우려고합니다. 저는 4 장에서 저자가 IoC와 DI를 설명하는 곳입니다. 그는 GenericXmlApplicationContext를 사용하여 구성 파일을 지정합니다. 그는은 다음을Pro Spring 3book, 클래스 경로 리소스 [app-context-annotation.xml]이 (가) 존재하지 않아 열 수 없습니다.

package com.apress.prospring3.ch4; 

import org.springframework.context.support.GenericXmlApplicationContext; 

public class UsingSetterInjection { 

    public static void main(String[] args) { 

     GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); 
     //ctx.load("classpath:app-context-xml.xml"); 
     ctx.load("classpath:app-context-annotation.xml"); 
     ctx.refresh();  

     MessageRenderer messageRenderer = ctx.getBean("messageRenderer", MessageRenderer.class); 
     messageRenderer.render(); 
    } 
} 

내 구조/주/자원/앱 문맥 annotation.xml

SRC

클래스 패스 리소스 [앱 문맥 주석에서 XML 문서를 구문 분석 IOException이 .xml]; 중첩 예외가 java.io.FileNotFoundException : 클래스 경로 리소스 [app-context-annotation.xml]이 (가) 존재하지 않아 열 수 없습니다.

+0

"app-context-xml.xml"이라는 스프링 구성 파일을 만들었습니까? 그렇다면 응용 프로그램의 클래스 경로에 추가했는지 확인하십시오. – kyiu

+0

내 구조는 입니다. src/main/resources/app-context-annotation.xml –

+0

먼저 대답을 수락하십시오! 둘째, Maven을 사용하고있을 것입니다. target/classes/app-context-annotation.xml이 있는지 확인하십시오. 그렇다면 코드를 컴파일하지 않았다면 –

답변

0

xml 파일을로드 할 때 다음 행을 사용할 수 있습니까?

ctx.load("classpath*:app-context-annotation.xml"); 

나는 클래스 패스 후 *을 추가했습니다. 나는 이것이 당신의 문제를 해결해야한다고 생각합니다. 그렇지 않으면이 파일이 응용 프로그램 클래스 경로에 있는지 여부를 확인해야합니다.

건배.

+0

안녕하세요, 시도했지만 작동하지 않았습니다. 감사합니다 –

+0

이 XML에 대해 배포 된 애플리케이션의 클래스 폴더를 확인할 수 있습니까? 클래스 폴더에있는 경우 다른 문제가 있어야합니다. –

1

완벽한 경로를 지정하면 매력처럼 작동합니다.

GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); 
    ctx.load("classpath:META-INF/spring/app-context-annotation.xml"); 
관련 문제