반응형
1. 에러의 원인
Controller 의 요청이 메소드 단위로 세분화되면서, Default Annotation Handler Mapping 이 Aannotation Method Handler Adapter 로 handler 를 전달해 줄때 문제가 생겼기 때문이다.
즉, handler 관련 config 값이 제대로 설정되지 않은 것이었다.
위 에러를 두가지 방법으로 해결했었다
2. dispathcer-servlet 의 설정 추가
아래 코드처럼 설정을 지정하여 servlet 설정을 해주었다.
<!-- 사용자지정 -->
<!-- java의 공통 패키지 -->
<context:component-scan base-package="com.kpop.*">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!-- Ajax 주석문 허가 -->
<mvc:annotation-driven/>
<!-- 스프링에서 처리할 수 없는 요청은 tomcat에 위임 -->
<mvc:default-servlet-handler/>
<mvc:interceptors>
3. @EnableWebMvc 사용
위 어노테이션은 Spring Framework에서 여러 Config 값을 알아서 세팅해준다는 장점이 있는데 이런 편리함 때문에 @EnableWebMvc 어노테이션을 사용해서 해결할 수 있다. Controller 에 위 어노테이션을 사용하면 된다.
4. 결과
두개 모두 에러를 해결할 수 있지만, 아무래도 위 에러가 발생하는 원인은 전부 다르기 때문에 어노테이션으로 스프링의 기본 설정을 간단하게 해결할 수 있는 3번 해결방법이 괜찮은 것 같다.
반응형