programing

ServletContext 리소스 [/WEB-INF/applicationContext.xml]을(를) 열 수 없습니다.

lastcode 2023. 10. 9. 23:18
반응형

ServletContext 리소스 [/WEB-INF/applicationContext.xml]을(를) 열 수 없습니다.

네, 저는 이 질문을 하는 500번째 사용자입니다. 많은 답변을 읽었지만 여전히 운이 없습니다.

부모 모듈 폼에는 다음이 포함됩니다.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.framework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.framework.version}</version>
</dependency>

하위 모듈이 있음maven-jetty-plugin그리고 나는 웹앱 모듈을 실행합니다.jetty:run.

web.xml표준 디스패처 모듈을 정의합니다.

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

파일이 있습니다.dispatcher-servlet.xml아래WEB-INF, 시작이 다음과 함께 실패하지만:

FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]

뭐가 잘못됐나요?문서와 모든 사람은 Spring MVC가 XX-servlet.xml을 검색할 것이라고 말합니다. 여기서 XX는 servlet의 이름입니다.검색하는 이유는 무엇입니까?applicationContext.xml?

ContextLoaderListener는 모든 서블릿과 필터가 공유하는 고유한 컨텍스트를 가지고 있습니다.기본적으로 검색합니다./WEB-INF/applicationContext.xml

를 사용하여 이를 사용자 정의할 수 있습니다.

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/somewhere-else/root-context.xml</param-value>
</context-param>

위에web.xml, 필요 없는 경우 이 청취자를 제거합니다.

업데이트: applicationContext.xml에서와 같은 두 번째 컨텍스트가 만들어집니다.

또는 이 코드 조각을 웹.xml에 추가할 수 있습니다.

<servlet>
    <servlet-name>spring-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

대신에

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

언급URL : https://stackoverflow.com/questions/22350721/could-not-open-servletcontext-resource-web-inf-applicationcontext-xml

반응형