ComputerScience/Study
[스프링5 프로그래밍 입문] 톰캣 서버 실행시 dispatcher 오류 발생하는 경우
현량
2025. 4. 20. 23:53
한 줄 요약 : xml파일에 오타 있는지 다시 확인하시면 좋습니다
에러문구
[main] ERROR org.springframework.web.servlet.DispatcherServlet --Failed to set bean properties on servlet 'dispatcher'
증상 : 톰캣 서버가 실행된것처럼 보이나, 실제로 뷰 호출시 실행되지 않음(404 에러 등)
해결
- dispatcher 오류 메세지와 함께,
Caused by: java.lang.IllegalArgumentException: Could not find class [org.springframework.web.context.support.AnnotationConfigWebApplicaionContext]
라는 오류가 보임.
여기에서 class를 유심히 들여다 봤더니, Application에 t를 빠트리고 썼다는 사실을 발견, 바로 해결했습니다.
xml은 에러 찾기가 힘들어서 일일히 타이핑하는 것보다 문서에서 그대로 클래스 긁어오는게 편하다는 사실을 깨달았습니다.
아래 링크 들어가시면
AnnotationConfigWebApplicationContext (Spring Framework 6.2.6 API)
docs.spring.io

이렇게 클래스 상속도..?가 나오니 이거 복붙해서 쓰시는거 추천드립니다.
이 오류 전에는 톰캣 버전이랑 서블렛 버전이 안맞아서 발생했던 오류도 있었는데, 그건 스프링 버전을 바꿔서 해결했습니다.
현재시점 사용중인 버전(build.gradle에서 발췌)
dependencies {
implementation group: 'org.springframework', name: 'spring-context', version: '6.2.6'
implementation group: 'org.springframework', name: 'spring-jdbc', version: '6.2.6'
implementation group: 'org.aspectj', name: 'aspectjweaver', version: '1.9.22.1'
implementation group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: '10.1.31'
implementation group: 'com.mysql', name: 'mysql-connector-j', version: '8.4.0'
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.5.18'
implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.17'
implementation group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: '6.0.0'
implementation group: 'jakarta.servlet.jsp', name: 'jakarta.servlet.jsp-api', version: '4.0.0'
implementation group: 'org.glassfish.web', name: 'jakarta.servlet.jsp.jstl', version: '3.0.1'
implementation group: 'org.springframework', name: 'spring-webmvc', version: '6.2.6'
}
* 톰캣 10.1 버전에 맞춰서 서블렛/스프링 버전을 올렸습니다.