복붙노트

[SPRING] Spring에서 FileNotFoundException을 얻는 중

SPRING

Spring에서 FileNotFoundException을 얻는 중

BeanFactory를 사용하여 Bean을 만들고 싶지만 java.io.FileNotFoundException : \\ WEB-INF \ businesscaliber-servlet.xml과 같은 예외가 발생합니다.

Resource res = new FileSystemResource("//WEB-INF//businesscaliber-servlet.xml");
BeanFactory factory = new XmlBeanFactory(res);
if (factory != null && beanId != null) {
    obj = factory.getBean(beanId);
}

그는 이것을 사용하여 일하고있다.

ApplicationContext ctx = new FileSystemXmlApplicationContext ( "classpath * : / WEB-INF / businesscaliber-servlet.xml");

해결법

  1. ==============================

    1.필자는 FileSystemResource에 대한 웹 응용 프로그램 상대 경로가 아닌 절대 경로를 지정해야한다고 생각합니다.

    필자는 FileSystemResource에 대한 웹 응용 프로그램 상대 경로가 아닌 절대 경로를 지정해야한다고 생각합니다.

    대신 ServletContextResource를 사용해보십시오.

    유일한 문제는 ServletContext가 필요하다는 것입니다.

    ServletContext servletContext = ...
    Resource res = new ServletContextResource(servletContext,
      "/WEB-INF/businesscaliber-servlet.xml");
    BeanFactory factory = new XmlBeanFactory(res);
    if (factory != null && beanId != null) {
        obj = factory.getBean(beanId);
    }
    

    이상적으로 ApplicationContext에서이 값을 가져 오는 것이 좋습니다. 4.4 Spring Reference의 Resource Loader :

    따라서 이것은 리소스를 검색하는 기본 방법입니다.

    또는 / WEB-INF /가 기술적으로 클래스 경로에 있기 때문에 classpath : 접두어 (사용자 의견에 따라)를 사용하거나 ClassPathXmlApplicationContext (클래스 경로 자원을 자동으로 반환)를 사용할 수 있습니다.

    또한 두 개의 슬래시를 넣을 필요가 없습니다. 왜 이것을하는지. 아마도 이중 백 슬래시가 필요합니까?

  2. from https://stackoverflow.com/questions/2076198/getting-filenotfoundexception-in-spring by cc-by-sa and MIT license