기타/오류

[Problem] SpringBoot com.fasterxml.jackson.databind.exc.InvalidDefinitionException

배발자 2023. 1. 15.
반응형

 

 

  //Post Method Object Mapping
  @PostMapping("/postMappingObjectTest")
  public SampleDto postMappingObjectTest(@RequestBody SampleDto sampleDto){
    return sampleDto;
  }

 

sampleDto 라는 클래스를 생성했을 때 @RequsetBody 어노테이션으로 바로 맵핑 시킬려고 했지만 

개체 값에서 역직렬화를 할 수 없다는 오류를 만났다. 

 

해결 방법은 아래와 같다. 

 

This error message is indicating that the Jackson library, which is used for serializing and deserializing Java objects to and from JSON, is unable to instantiate an instance of the "com.project.baggu.dto.SampleDto" class. The error is saying that the class does not have a default constructor (a constructor with no arguments) or any other constructor annotated with @JsonCreator, which Jackson uses to instantiate objects during deserialization. To fix this issue, you can either add a default constructor to the SampleDto class, or annotate one of its constructors with @JsonCreator.

 

해당 오류는 Java 개체를 JSON으로 직렬화 및 역직렬화하는 데 사용되는 Jackson 라이브러리가 "com.project.baggu.dto.SampleDto" 클래스의 인스턴스를 인스턴스화할 수 없음을 나타낸다.

오류는 클래스에 기본 생성자(인수가 없는 생성자) 또는 @JsonCreator로 주석이 달린 다른 생성자가 없다는 것이다.  Jackson은 역직렬화 중에 개체를 인스턴스화하는 데 사용합니다.

 

이 문제를 해결하려면 SampleDto 클래스에 기본 생성자를 추가하거나 해당 생성자 중 하나에 @JsonCreator로 주석을 추가할 수 있습니다.

 

 

필자는 SampleDto 클래스에 "@NoArgsConstructor" 를 추가해주어 오류를 해결하였다. 

반응형

댓글