[Spring] org.springframework.web. servlet.PageNotFound

uoayop·2021년 10월 20일
1

에러 한바가지

목록 보기
14/16
post-thumbnail

상황

서버 실행 후 바로 404가 떠버린다 OTL


에러 코드

[No mapping for GET mvc/list] org.springframework.web.servlet.PageNotFound

발생하는 이유

서블릿에서 http의 요청을 제대로 매핑해주지 못해서 생긴 문제!
== 들어오는 url 요청에 대해 어느 페이지로 보내줄지 처리를 못한다는 뜻


해결 방법

  1. org.springframework.web.servlet.PageNotFound
  2. [org.springframework.web.servlet.PageNotFound - No mapping for GET] spring url매핑 에러
  3. org.springframework.web.servlet.PageNotFound
  4. 스프링 오류 - No mapping for GET

  • 하나씩 체크해보자
  1. 컨트롤러 역할을 수행할 파일 클래스에 @Controller 어노테이션이 있는지 확인
  1. @RequestMapping 의 경로가 틀리진 않았는지 확인
  1. servlet-context.xml 확인하기
    3-1. base-package의 경로가 틀리진 않았는지 확인
    <context:component-scan base-package="com.ssafy.mvc.controller" />

    3-2. <annotation-driven /> 태그가 있는지 확인

  • context:component-scan 가 뭐하는디?

    • 특정 패키지 안의 클래스들을 스캔하고, 어노테이션을 확인한 후 bean 인스턴스를 생성해줌
    • 이렇게 생성된 인스턴스는 @AutoWired와 @Qualifier Annotation로 인식할 수 있음
  • <annotation-driven /> 가 뭐하는 태그나면?

    • Spring MVC가 @Controller에 요청을 보내기 위해 필요한 HandlerMapping과 HandlerAdapter를 bean으로 등록해줌
    • 등록된 bean에 의해 요청 url과 컨트롤러를 매칭할 수 있음
    • 만약 context:component-scan을 명시하면 이 태그는 없어도 됨!
  1. root-context.xml 확인하기
    <context:component-scan base-package="com.ssafy.mvc.model"></context:component-scan>
  • 컨트롤러와 마찬가지로 스캔할 클래스의 패키지 경로가 있는지 확인해주자
profile
slow and steady wins the race 🐢

0개의 댓글