이 문서의 내용
테스트 환경 및 주요 아젠다
더보기
이 프로젝트의 개발 환경
- 개발 언어 및 환경
- OpenJDK 12
- Spring: spring-mvc: 5.0.2.RELEASE
- Tomcat: tomcat-jdbc: 8.5.27
- Gradle 7.3
- 기타 환경
- macOS Sonoma 14.1.1
- IntelliJ IDEA 2020.3 Ultimate Edition
DispatcherServlet이 URI와 매핑된 컨트롤러를 찾지 못하고 있습니다. 관련 오류 메시지는 다음과 같습니다.
org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI {URI 경로} in DispatcherServlet with name {dispatcher 이름}
스프링 애플리케이션은 톰캣에서 실행되고 있습니다.
톰캣이 실행되며 No annotated classes found for specified class/package 오류가 발생합니다.
org.springframework.web.context.support.AnnotationConfigWebApplicationContext.loadBeanDefinitions No annotated classes found for specified class/package {설정 클래스 이름}
문제 해결: DispatcherServlet 설정 확인
web.xml 파일에서 설정하는 DispatcherServlet의 contextConfiguration 항목을 확인합니다.
이 파라미터에서는 스프링 설정 클래스 목록을 지정합니다.
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
...
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
config.MvcConfig
config.ControllerConfig
</param-value>
</init-param>
...
</servlet>
예제에서 등록하고 있는 스프링 설정 클래스는 config.MvcConfig와 config.ControllerConfig입니다.
예제의 두 클래스의 패키지 경로가 잘못 입력되어 있습니다. 설정 클래스의 FQCN(Full Qualified Class Name)을 올바르게 지정하는 것으로 해결되었습니다.
정리 및 복습
- DispatcherServlet에서
No mapping found for HTTP request with URI {URI 경로} in DispatcherServlet with name {dispatcher 이름}오류가 발생하고 있습니다. - 톰캣이 실행되며
No annotated classes found for specified class/package오류가 발생합니다. - DispatcherServlet 설정에서
스프링 설정 클래스의 FQCN가 올바르게 입력되어 있는지 확인합니다.
'Java > Spring' 카테고리의 다른 글
jsp 파일 경로를 읽지 못하는 "Error resolving template, template might not exist or might not be accessible by any of the configured Template Resolvers" 오류 (0) | 2024.04.12 |
---|---|
Spring 5 입문: Chapter 10. 스프링 MVC 프레임워크 동작 방식 (0) | 2024.01.04 |
Spring 5 입문: Chapter 09. 스프링 MVC 시작하기 (0) | 2024.01.03 |
스프링의 MVC 구조와 기본 개념 (0) | 2024.01.03 |
REQUIRES_NEW 사용 시 외부, 내부 트랜잭션의 독립 실행 테스트 (0) | 2023.12.19 |