org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.insta.dto.article.ArticleRequestDto]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.insta.dto.article.ArticleRequestDto (no Creators, like default constructor, exist): cannot deserialize from Object value
(no delegate- or property-based Creator)
cannot deserialize from Object value
를 구글링했다. ArticleRequestDto
에 빈 생성자를 추가해주면 문제는 해결된다. @RequestBody
로 넘어오는 객체에는 기본 생성자가 필요Jackson2HttpMessageConverter
이다. @RequestBody
로 JSON 데이터가 넘어오면 Java Object 변환은 Jackson2HttpMessageConverter
에서 해준다. Jackson2HttpMessageConverter
의 ObjectMaper
를 사용해서 Object로 전환해준다. Jackson2HttpMessageConverter
가 아니라 WebDataBinder
를 사용한다. protected ArticleRequestDto(){}
Jackson2HttpMessageConverter
이 어떻게 동작하는지는 당연히 알아야되지 않을까? 테스트 코드를 작성해서 확인할 수 있는 방법이 있던데 다음에 도전해봐야겠다.