스프링MVC로 프로젝트 진행 중에 404 에러가 떴습니다.

WARN : org.springframework.web.servlet.PageNotFound - No mapping for GET

이 에러가 뜬다면 먼저 체크해봐야할 것이 4가지 있습니다.

1. web.xml에 DispatcherServlet 선언이 잘 되어있는지 확인

2. servlet-context.xml 확인

<context:component-scan base-package="패키지명"/>
<mvc:annotation-driven/>


3. 컨트롤러 클래스에 @Controller와 url 매핑이 잘 되어 있는지 확인

보통은 위에 3가지를 체크하면 해결이 되지만!
위에 3가지를 모두 체크해도 계속해서 404 오류가 난다면, 프로젝트 이름으로 된 {project_name}.iml 파일을 확인해보세요!! (ex. 프로젝트 이름이 boardWeb이라면 boardWeb.iml 파일)

파일에서 해당 부분을 삭제하면 정상 실행됩니다 :)

저거 지우고 3일간의 오류 찾기는 겨우 끝이 났어요,,,,,,,,,, 모두들 오류 잘 해결하세요.

Spring MVC와 JPA로 개발하던 중 DB에 한글이 깨져서 들어간 것을 확인했다ㅠㅠ

그래서 구글링을 통해서 찾아봤는데
대부분 dataSource url에 "useUnicode=true&characterEncoding=utf8" 을 추가하라고 나온다.

jdbc:mysql://localhost:3306/DB이름?useUnicode=true&characterEncoding=utf8

하지만 내 경우에는 이 방식으로는 해결을 못했다..

데이터가 DB에 들어가기 전에 콘솔창에 출력을 해서 확인해보니 이미 한글이 깨져있었다. DB 들어갈 때 깨지는 건 아니라는 소리
그렇다면 필터 문제인가 싶어서 보니 필터 url이 문제였다..

web.xml을 밑에와 같이 수정하니 한글 깨짐 현상이 사라졌다!!

    <filter>
        <filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


스프링프레임워크를 공부하다가 

<context:annotation-config/>

 

DI를 공부하면서 xml 파일에 위와 같은 코드를 적었는데 빨간 줄이 뜨면서 오류가 났다.

구글링을 통해 찾아보니

 

이 코드를 (수정 전)

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/tool
	http://www.springframework.org/schema/tool/spring-tool.xsd"

 

밑에처럼 바꿔주면 해결된다!

(수정 후)

xmlns:context="http://www.springframework.org/schema/context"

// xsi:schemaLocation에 밑의 주소 추가
xsi:schemaLocation="http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd"

+ Recent posts