2014-06-15 6 views
0

스프링 빈 XML 파일에 정의 된 특정 스프링 빈을 얻고 자하는 스프링 프로젝트가있다. 내 Spring bean XML 파일은 /WEB-INF/spring/root-context.xml에 있습니다. 내가 컴파일 할 때 여기에 스프링 빈을 얻을 수 없다.

ApplicationContext context = new ClassPathXmlApplicationContext("/WEB-INF/spring/root-context.xml"); 

은 내가 오류입니다 :

parsing XML document from class path resource [WEB-INF/spring/root-context.xml]; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/spring/root-context.xml] cannot be opened because it does not exist 

답변

0

은 아마 WEB-INF가 클래스 경로에 있지

다음은 서비스 클래스 내 코드입니다. 클래스 패스에서 xml 파일을 옮기는 것이 좋습니다 (예 : src/main/resources/spring/root-context.xml). 그럼 당신은 그것을 액세스 할 수 있습니다 ApplicationContext context = new ClassPathXmlApplicationContext("/spring/root-context.xml"); 당신이 웹 응용 프로그램 내 경우, 스프링 MVC는 WEB-INF/<the name of the dispatcher servlet>-servlet.xml

에서 일 컨텍스트를 검색하면

GenericApplicationContext ctx = new GenericApplicationContext(); 
    XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx); 
    xmlReader.loadBeanDefinitions(new FileSystemResource(path)); 
를 사용하여 당신이 그것을로드 할 수 WEB-INF에서 컨텍스트에 액세스하려면

더 좋은 방법은 WebApplicationContextUtils을 사용하거나 ApplicationContextAware을 구현하는 것입니다. 귀하의 유스 케이스가 무엇인지 확실하지 않습니다 ...

+0

예, 알고 싶습니다. 그러나 원하는 것은 web-inf에있는 XML 파일이 MVPath 레이어와 ClassPathXmlApplicationContext를 사용하는 간단한 서비스 레이어 클래스 모두에서 액세스 할 수 있다는 것입니다. 이것을 할 수있는 방법이 있습니까? –

+0

@Abdessamad BOUTGAYOUT 나는 대답을 편집했다. –

관련 문제