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]

번호 제목 글쓴이 날짜 조회 수
77 [POST] Spring MVC 구조 분석 황제낙엽 2024.01.17 344
76 Spring Framework 에서 사용하는 annotation 황제낙엽 2024.01.17 466
75 Spring MVC configuration file 황제낙엽 2024.01.17 367
74 [스프링 시큐리티 OAuth2] 강의 자료와 학습용 소스 file 황제낙엽 2024.01.15 287
73 OAuth 2.0 Resource Server - Spring Security OAuth2.0 황제낙엽 2023.12.27 287
72 Spring, JSP, Gradle, Eclipse 환경 구축[2] - 샘플 프로젝트 file 황제낙엽 2023.12.24 334
71 Spring, JSP, Gradle, Eclipse 환경 구축[1] - 레퍼런스 조사 황제낙엽 2023.12.23 334
70 spring-security-samples 황제낙엽 2023.12.22 332
69 [Bard] Spring 과 Spring Boot의 차이 file 황제낙엽 2023.12.21 335
68 Spring 과 Spring Boot의 차이 file 황제낙엽 2020.05.26 552
67 Spring Security OAuth2.0 파헤치기 황제낙엽 2019.09.05 397
66 Spring Security OAuth2구현 file 황제낙엽 2019.09.05 768
65 Spring Security OAuth 황제낙엽 2019.09.05 743
64 [Spring3.1.1] ResponseBody 한글깨짐 해결법 황제낙엽 2018.08.08 474
63 [Spring3.1.1][4] RestTemplate 한글 문제 황제낙엽 2018.08.08 306
62 [Spring3.1.1][3] RestTemplate 한글 문제 황제낙엽 2018.08.08 542
» [Spring3.1.1][2] RestTemplate 한글 문제 황제낙엽 2018.08.08 318
60 [Spring3.1.1][1] RestTemplate 한글 문제 황제낙엽 2018.08.08 1008
59 [Spring3.1.1] Eclipse 에 Spring Framework 환경 구축하기 file 황제낙엽 2018.08.08 325
58 웹 개발의 변화와 스프링 황제낙엽 2008.03.19 364