sitelink1 http://bcuts.tistory.com/32 
sitelink2  
sitelink3  
extra_vars6  

Spring에서 http 기반의 메시지 처리는 HttpMessageConverter를 이용한다.

 

RestTemplate 클래스의 postxxx 메서드를 이용해서 파라미터를 전송하면 FormHttpMessageConverter를 사용하게됨.

FormHttpMessageConverter는 넘겨주는 파라미터 타입에 따라서 HttpMessageConverter 종류를 다르게 사용함.

 

한글 깨지는 문제는 StringHttpMessageConverter의 기본 캐릭터셋이 UTF-8 아님.

 

해결책은 아래 설정 참조.

 

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">

<property name="messageConverters">

<list>

<bean class="org.springframework.http.converter.FormHttpMessageConverter">

<property name="partConverters">

<list>

<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter">

</bean>

<bean class="org.springframework.http.converter.StringHttpMessageConverter">

<constructor-arg>

<bean class="java.nio.charset.Charset" factory-method="forName">

<constructor-arg value="UTF-8" />

</bean>

</constructor-arg>

<property name="writeAcceptCharset" value="false" />

</bean>

<bean class="org.springframework.http.converter.ResourceHttpMessageConverter">

</bean>

</list>

</property>

</bean>

<bean class="org.springframework.http.converter.StringHttpMessageConverter">

<constructor-arg>

<bean class="java.nio.charset.Charset" factory-method="forName">

<constructor-arg value="UTF-8" />

</bean>

</constructor-arg>

</bean>

</list>

</property>

</bean> 

 

 

 

 

 

 

 

 

아래부부은 <constructor-arg value="UTF-8" /> 이렇게 변경해도됨

 

 

<constructor-arg>

<bean class="java.nio.charset.Charset" factory-method="forName">

<constructor-arg value="UTF-8" />

</bean>

</constructor-arg> 

 

 

 

 

Java Code

 

List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();

FormHttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter();

formHttpMessageConverter.setCharset(Charset.forName("UTF-8"));

List<HttpMessageConverter<?>> partConverters = new ArrayList<HttpMessageConverter<?>>();

partConverters.add(new StringHttpMessageConverter(Charset.forName("UTF-8")));

partConverters.add(new ResourceHttpMessageConverter());

partConverters.add(new ByteArrayHttpMessageConverter());

formHttpMessageConverter.setPartConverters(partConverters);

messageConverters.add(formHttpMessageConverter);

 

messageConverters.add(new StringHttpMessageConverter(Charset.forName("UTF-8")));

 

RestTemplate restTemplate = new RestTemplate(messageConverters);

 

 



출처: http://bcuts.tistory.com/32 [Back to the BASIC]

번호 제목 글쓴이 날짜 조회 수
37 [POST] Spring MVC 구조 분석 황제낙엽 2024.01.17 511
36 OAuth 2.0 Resource Server - Spring Security OAuth2.0 황제낙엽 2023.12.27 428
35 [Spring3.1.1] ResponseBody 한글깨짐 해결법 황제낙엽 2018.08.08 626
34 [Spring3.1.1][4] RestTemplate 한글 문제 황제낙엽 2018.08.08 456
33 [Spring3.1.1][3] RestTemplate 한글 문제 황제낙엽 2018.08.08 783
» [Spring3.1.1][2] RestTemplate 한글 문제 황제낙엽 2018.08.08 469
31 [Spring3.1.1][1] RestTemplate 한글 문제 황제낙엽 2018.08.08 1181
30 NamedParameterJdbcDaoSupport 몇가지 장점 황제낙엽 2007.11.27 371
29 Spring AOP - Pointcut 황제낙엽 2007.10.02 426
28 <spring:checkbox> tip! 황제낙엽 2007.10.01 734
27 스프링 2와 JPA 시작하기 (한글) 황제낙엽 2007.08.27 486
26 Spring 2.0의 XML확장기능 (3) 황제낙엽 2007.08.15 313
25 Spring 2.0의 XML확장기능 (2) 황제낙엽 2007.08.15 344
24 Spring 2.0의 XML확장기능 (1) 황제낙엽 2007.08.15 313
23 스프링의 구조별 기능 설명 황제낙엽 2007.06.26 358
22 자바지기 스프링 프레임웍 아티클 황제낙엽 2007.06.04 337
21 AOP(Aspect Oriented Programming) 황제낙엽 2007.06.03 339
20 Spring MVC 어플리케이션 개발 <12> 간단한 조회 구현 방안 비교 황제낙엽 2007.05.27 312
19 Spring MVC 어플리케이션 개발 <11> 간단한 조회 구현 방안 비교 황제낙엽 2007.05.27 458
18 Spring MVC 어플리케이션 개발 <10> 도메인 객체 수정시 변경 사항 황제낙엽 2007.05.27 286