RequestMappingHandlerAdapter Jackson
- 작성자 :
- 박*연
- 작성일 :
- 2017-11-15 19:41:50
- 조회수 :
- 1,361
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
egov 3.6.0
spring 4.1.2.RELEASE
com.fasterxml.jackson.core 2.4.3
위의 환경에서 jackson설정, RequestMappingHandlerMapping에 interceptor 추가 를 위해 dispatcher-servlet.xml 파일을 수정하였는데
<mvc:annotation-driven> 설정은 하지 않았고 다른 HandlerMapping bean도 존재하지 않습니다.
아래와 같이 설정하였습니다.
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="interceptors">
<bean id="customInterceptor" class="sys.com.CustomInterceptor" />
</property>
</bean>
<bean id="jacksonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonConverter"/>
</list>
</property>
</bean>
custom interceptor 클래스는 잘 동작하는데 jackson이
RequestMappingHandlerMapping, RequestMappingHandlerAdapter과 같이 쓰였을때 동작을 하지 않습니다
custom interceptor를 제외하고
jackson을 spring 3.1버전부터 deprecated 된 AnnotationMethodHandlerAdapter에 등록하면 제대로 동작하구요
jackson이 RequestMappingHandlerMapping, RequestMappingHandlerAdapter과 같이 쓰였을때
설정하는 부분이 잘못된건가요??
(interceptor 클래스에서 handler객체로 method를 받아와야 하기 때문에 RequestMappingHandlerMapping 으로 설정해야합니다..)
spring 4.1.2.RELEASE
com.fasterxml.jackson.core 2.4.3
위의 환경에서 jackson설정, RequestMappingHandlerMapping에 interceptor 추가 를 위해 dispatcher-servlet.xml 파일을 수정하였는데
<mvc:annotation-driven> 설정은 하지 않았고 다른 HandlerMapping bean도 존재하지 않습니다.
아래와 같이 설정하였습니다.
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="interceptors">
<bean id="customInterceptor" class="sys.com.CustomInterceptor" />
</property>
</bean>
<bean id="jacksonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonConverter"/>
</list>
</property>
</bean>
custom interceptor 클래스는 잘 동작하는데 jackson이
RequestMappingHandlerMapping, RequestMappingHandlerAdapter과 같이 쓰였을때 동작을 하지 않습니다
custom interceptor를 제외하고
jackson을 spring 3.1버전부터 deprecated 된 AnnotationMethodHandlerAdapter에 등록하면 제대로 동작하구요
jackson이 RequestMappingHandlerMapping, RequestMappingHandlerAdapter과 같이 쓰였을때
설정하는 부분이 잘못된건가요??
(interceptor 클래스에서 handler객체로 method를 받아와야 하기 때문에 RequestMappingHandlerMapping 으로 설정해야합니다..)
A
안녕하십니까, 박소연님
표준프레임워크센터입니다.
Jackson 업그레이드 버전 이슈인 것으로 보입니다. (스프링 4.1.x)
pom.xml에
dependency를
-이전-
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
-이후-
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.3</version>
</dependency>
로 변경이 되었는지 확인 해주시기 바랍니다.
감사합니다.
표준프레임워크센터입니다.
Jackson 업그레이드 버전 이슈인 것으로 보입니다. (스프링 4.1.x)
pom.xml에
dependency를
-이전-
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
-이후-
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.3</version>
</dependency>
로 변경이 되었는지 확인 해주시기 바랍니다.
감사합니다.