JSON parse error

개뉸·2022년 8월 9일
0

지식이 늘었다

목록 보기
3/4
post-thumbnail

정말 간단한 CRUD를 작성중이었다.
게시글 쓸때 비밀번호를 입력받게 했고 수정이나 삭제를 할때에 이때 적었던 비밀번호가
있어야 삭제할 수 있게 만들었다.
삭제할때 삭제할 게시물의 번호와 JSON 형식의 바디부분에 요청으로 비밀번호를 입력하게
만들어야 했다. 그래서 삭제시에만 쓰이는 비밀번호 입력전용인 DTO를 생성했다.

Lombok을 안쓰고 해보는거라서 다 적었어야 했다.


이건 컨트롤러다. 사진에 보이듯이 삭제할 게시물의 id 와 비밀번호로 쓰일 editDto를 요청할때 바디에 담게 만들고 postService의 deletePost 함수를 호출해서 거기서 삭제를 진행 시키려고 했다.


이론상 완벽해서 별 걱정없이 실행해봤다.


?????????? 머임

2022-08-09 15:51:19.278  WARN 10856 --- [nio-8080-exec-5] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `com.sparta.yaza.dto.EditDto` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.sparta.yaza.dto.EditDto` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)<EOL> at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 3]]

이게 무슨 소리지?
심지어 Controller 에서 프린트조차도 안뜬다. API 주소도 잘 맞았는데도 불구하고.
끝에 보니까 EditDto 문제인거 같은데 뭐가 문제였을까?

기본 생성자를 안만들었다 이놈아


뭐야 그럼 애초에 EditPost에 빨간줄 그어줬어야지 왜 정상인거처럼 가만히 있었어
Post 를 Entity 설정할때는 기본생성자 없다고 빨간줄 그어줘서 만들어줬는데 얘는 왜 입꾹닫고 가만히 있지?

출처 : https://azurealstn.tistory.com/74

0개의 댓글