티스토리 뷰

 

더보기

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `springdatajpa.study.web.dto.UserRegisterDto` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 5]

오늘 공부를 하고있던 와중 위와 같은 오류가 발생하였습니다.


오류가 발생한 부분

    @PostMapping
    public ResponseEntity<String> postUser(@RequestBody UserRegisterDto registerDto) {
        log.info("/user Post API {}", registerDto.toString());

        userService.addUser(registerDto);
        return ResponseEntity.ok().body("success");
    }

오류가 발생하였던 이유

컨트롤러에서 전달된 JSON을 @RequestBody를 통해 DTO 객체로 변환하는 과정에서 발생한 오류인 것 같습니다.

오류를 읽어보면 "no Creators, like default constructor, exist" 라고 적혀있습니다.

이는 객체를 생성할 기본 생성자가 없다는 의미라고 생각했습니다.

 


오류 해결

JSON을 변환할 객체에 기본생성자를 생성하면 되고

Lombok을 사용한다면 @NoArgsConstructor을 붙여주면됩니다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함