바로 직전 포스팅에서 JSON 데이터 전송 시 Encoding 오류를 해결하기 위해
config에서 configureMessageConverters() 메서드를 활용하여 MessageConverter를 등록하였는데
이미지 preview가 갑자기 다 엑박으로 도배가 되어버려서 당황...😅
👇🏻직전 포스팅 확인👇🏻
https://hydiary.tistory.com/35
WARN : org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver
- Resolved [org.springframework.http.converter.HttpMessageNotWritableException:
No converter for [class [B] with preset Content-Type 'image/png']
콘솔에서 확인한 오류의 내용은 위와 같았다.
HttpMessageNotWritableException 예외에 대하여 확인해보니 HTTP 응답을 생성하는 데 사용되는
HttpMessageConverter가 적절하지 않거나 사용할 수 없는 경우 발생하는 오류였다.
또 다시 chatGPT의 힘을 빌려 원인을 알아보았다😋
configureMessageConverters() 메서드는 메시지 컨버터를 구성하는 데 사용되는 메서드이다.
이미지 파일과 같은 바이너리 데이터를 처리하는 데 사용되는 기본 컨버터는
ByteArrayHttpMessageConverter 이기 때문에
configureMessageConverters() 메서드에서 ByteArrayHttpMessageConverter를 추가해주어야 한다는 것!
import java.nio.charset.Charset;
import java.util.List;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class AppConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new ByteArrayHttpMessageConverter());
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setDefaultCharset(Charset.forName("UTF-8"));
converters.add(converter);
}
}
converters에 ByteArrayHttpMessageConverter를 추가해주었더니
이미지 파일명도 문제없이 인코딩이 잘 되어 오류를 해결할 수 있었다😮
Servlet을 활용한 웹 애플리케이션 생성을 먼저 경험한 후
Spring Framework에서 MyBatis를 활용한 웹 애플리케이션을 만들어가면서
훨씬 더 많은 부분들을 공부해야 한다는 것을 또 한 번 느낀다😥
'Project > My only universe(Spring framework)' 카테고리의 다른 글
[Spring] JSON 데이터 전송, Encoding 오류 해결 (0) | 2023.04.04 |
---|---|
BootStrap을 활용한 navbar에서 menu 글자 위치 조정하기(중앙, 우측 정렬) (0) | 2023.03.28 |
JSON 형태의 데이터 반환, @ResponseBody, @RequestBody 어노테이션 (0) | 2023.03.28 |
[Error] Login 기능 구현 중 Parameter 송신 오류 및 결과값 타입 변환 오류 (0) | 2023.03.24 |
[3월 4주 차] 프로젝트 시작 후 24일째, 진행 상황 중간 점검 (0) | 2023.03.22 |