Spring boot-Multipart사용하면서 발생한 오류

qq·2023년 8월 9일
0

스프링

목록 보기
2/2

오류

{
  "check": false,
  "information": {
    "timestamp": "2023-08-09T09:22:34.6360137",
    "message": "org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'application/octet-stream' is not supported",
    "code": null,
    "status": 500,
    "class": null,
    "errors": []
  }
}

분명히 react로 프론트 혼자 구현해보면서 통신하면 잘 되는데 스웨거에서 하면 이런 오류가 떳다

해결법

무한 구글링 중에 이 글을 발견해서
https://stackoverflow.com/questions/16230291/requestpart-with-mixed-multipart-request-spring-mvc-3-2

이 파일만 추가해주니까 이 문제가 해결되고 swagger에서도 이미지 업로드 해볼 수 있었다

package clutch.clutchserver.global.common;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
import org.springframework.stereotype.Component;

import java.lang.reflect.Type;

@Component
public class MultipartJackson2HttpMessageConverter extends AbstractJackson2HttpMessageConverter {

    /**
     * Converter for support http request with header Content-Type: multipart/form-data
     */
    public MultipartJackson2HttpMessageConverter(ObjectMapper objectMapper) {
        super(objectMapper, MediaType.APPLICATION_OCTET_STREAM);
    }

    @Override
    public boolean canWrite(Class<?> clazz, MediaType mediaType) {
        return false;
    }

    @Override
    public boolean canWrite(Type type, Class<?> clazz, MediaType mediaType) {
        return false;
    }

    @Override
    protected boolean canWrite(MediaType mediaType) {
        return false;
    }
}
profile
백엔드 개발자

0개의 댓글