[Spring] ERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failed

2023. 5. 14. 21:21· BackEnd/Spring
목차
  1. 1. 문제 상황
  2. 2. 해결 방법

1. 문제 상황

"ERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failed"는 스프링 설정 파일 구성 문제로 인해 발생하는 에러다. 내 경우 tomcat 실행 후 spring 컨테이너가 처음 구동될 때 해당 문제가 발생했다.

2. 해결 방법

내 경우 web.xml에 applicationContext.xml 파일의 설정이 잘 되어있지 않아 발생했다. 수정한 web.xml은 아래와 같이 applicationContext.xml 파일과 dispatcher-servlet.xml 파일 두 스프링 설정 파일에 대한 경로를 잘 설정하고 있다. (즉, 내 경우 applicationContext.xml의 경로를 추가하지 않아 발생한 문제다.)  

<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <!--applicationContext.xml 설정-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/config/applicationContext.xml</param-value>
  </context-param>
  
  <!--Encoding 설정-->
  <filter>
    <filter-name>characterEncoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>characterEncoding</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping> 
  
  <!--dispatcher-servlet.xml 설정-->
  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/config/dispatcher-servlet.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

추가적으로 annotation 사용을 위해 applicationContext.xml에서는 @controller를 제외한 어노테이션을, dispacher-servlet.xml에서는 @controller만을 스캔하도록 설정했다. 먼저 applicationContext.xml에서 해당 내용은 아래와 같다.

<!--applicationContext.xml-->
<!--(생략)-->
<context:component-scan base-package="com.greenmate">
    <context:exclude-filter type="annotation"
                            expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!--(생략)-->

dispacher-servlet.xml의 해당 내용은 아래와 같다. 

<!--dispatcher-servlet.xml-->
<!--(생략)-->
<context:component-scan base-package="com.greenmate">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!--(생략)-->

 

저작자표시 (새창열림)

'BackEnd > Spring' 카테고리의 다른 글

[Spring] 스프링이란?  (0) 2023.08.08
[Spring] 스프링 탄생 배경  (0) 2023.08.07
[Setter Injection] p Namespace  (0) 2023.04.28
[Spring] Setter Injection 기본 사용법  (0) 2023.04.28
[Construction Injection] 다중 변수 매핑  (0) 2023.04.28
  1. 1. 문제 상황
  2. 2. 해결 방법
'BackEnd/Spring' 카테고리의 다른 글
  • [Spring] 스프링이란?
  • [Spring] 스프링 탄생 배경
  • [Setter Injection] p Namespace
  • [Spring] Setter Injection 기본 사용법
코딩마루
코딩마루
Nam's Study Note코딩마루 님의 블로그입니다.
코딩마루
Nam's Study Note
코딩마루
전체
오늘
어제
  • 분류 전체보기 (169)
    • BackEnd (88)
      • JSP & Servlet (12)
      • Java (12)
      • JDBC (5)
      • Spring (55)
      • Spring Security (3)
      • AWS (6)
      • Docker (0)
    • FrontEnd (4)
      • HTML (4)
    • Algorithm (23)
      • Brute Force (2)
      • Greedy (2)
      • Graph (2)
      • Dynamic Programming (4)
      • Divide and Conquer (1)
      • Data Structure (11)
    • AI (4)
      • NLP (4)
    • DB (29)
      • Oracle (13)
      • MySQL (15)
    • Data (8)
      • Crawling (8)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.3.0
코딩마루
[Spring] ERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failed
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.