실습을 하다가 만나게 된 에러...
JSON으로 데이터를 생성하려 Post로 전송을 했다.
{
"title": "제목입니다.",
"tutor": "음치킨"
}
하지만
500 에러가 나고,
콘솔을 확인해 보니
제일 첫 번째 줄에 났던 에러 문장 맨 뒤에
(에러가 날 때는 제일 처음에 난 에러부터 해결하자.
그러면 뒤에 에러 줄줄이 해결될 가능성 높음)
(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
이런 에러가 났다.
구글링해보니
"파라미터가 있는 constructor 가 있을 때 어떻게 Json 모델을 생성해야되는지 몰라서 발생하는 문제"
라고 한다.
출처 : https://developer-ping9.tistory.com/232
https://azurealstn.tistory.com/74
해결 방법은
- Json 으로 취급할 필드가 무엇인지 알려준다 (@JsonProperty 사용)
- 또는 NoArgsConstructor 를 만들어준다
라고 한다.
따라서 두 번째 방법(NoArgsConstructor)으로 코드 수정을 해보겠다.
[기존 코드]
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@Setter
@Getter
@RequiredArgsConstructor
public class CourseRequestDto {
private final String title;
private final String tutor;
}
[수정 코드]
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@NoArgsConstructor // 기본생성자를 대신 생성해줍니다.
public class CourseRequestDto {
private String title;
private String tutor;
public CourseRequestDto(String title, String tutor) {
this.title = title;
this.tutor = tutor;
}
}
[JSON / POST]
{
"title": "제목입니다.",
"tutor": "음치킨"
}
보내고,
[출력 결과]
정상 출력 되었다.
'에러' 카테고리의 다른 글
[에러] cannot construct instance of `...` & resolved [java.lang.nullpointerexception] (0) | 2023.01.17 |
---|---|
[에러] 회원 가입 & 로그인 에러 처리에 대한 고찰 (0) | 2023.01.17 |
git commit 삭제 (0) | 2023.01.04 |
Spring Boot와 MySQL 연동 방법 (0) | 2023.01.01 |
LeetHub 빨간체크 연동 에러 이슈 (0) | 2022.12.19 |