ERROR 해결

[Spring-boot] 에러 해결법 HttpMessageNotReadableException

엘라 ELLA 2024. 1. 25. 18:00
728x90
반응형

게시글이 도움이 되었다면

게시글의 광고 클릭,

[로그인]이 필요 없는  눌러주세요:)

 

환경 및 상황)

본인 = API 백엔드 개발

타인 = 화면개발(특이점 : 다른 협력중인 업체 인력 + 일면식없음)

 

본인이 API개발한부분 POSTMAN으로 테스트 했을때 결과값 return 정상으로 떨어지는거 확인했음.

화면에서 AJAX이용해 해당 API 보내면 에러난다고 봐달라고함.

내가 보기엔 문제 없음. 왜? 난 API테스트만 가능하니까. 그리고 거기서 값을 넣으면 정상으로 떨어지니까.,,

에러) 

HttpMessageNotReadableException

이부분을 프로젝트에 ExceptionController를 따로 만들어서 에러를 잡도록 만들어두었다.

내역이 나오지를 않아 log에 getCause()를 이용해 내역을 출력도 해보았는데 [Required request body is missing] 이 나왔다.

 

원인)

구선생에게 물어본 결과 원인은 크게 3가지이다.

 

1. 화면에서 보낸 데이터가 JSON 형식에서 벗어난 경우

2. 화면에서 데이터를 실수로 아예 없이 보내는 경우

3. API를 @GetMapping 으로 만든 경우

해결법)

1. Json 형식에 맞춰 데이터를 보내주면 된다.

 사실상 가장 흔한 에러이자 고치기 가장 쉬운 에러형식. 말 그대로 단순 실수

 

2. 화면에서 데이터를 보내면 된다~

 이건 사실 나의 과거 기록을 보고 알았다. 나도 이 실수를 했었다더라..~ 라는걸 내 블로그 글을 보고 알게되었음. 해당 내용은 링크 참고  <- 누르면 이동합니다.

 

3. 이건 상상도 못했음. 화면개발자가 GET 말고 POST로 바꿔주면 안되냐고 해서 해봤더니 잘됨; 당황잼.. POSTMAN으로 API 테스트 시 GetMapping을 사용해도 잘 return값이 원하는대로 나와줘서 진짜 상상도 못했음 ㄴㅇㄱ

 

추측상 AJAX 사용시 GET method를 사용하면 data값이 넘어오지를 않는것같음. 같음이 아니라 추측에서 확신이 됨. 스스로가 이렇게 말미잘같이 느껴질줄이야.. Controller단에서 Method를 GET-> POST로 바꿔주면 됨,,

 

 


 

이건 기록감이다..!

 

진심 이게 왜? 왜 내탓이란말이냐?! 라는 생각에 프론트엔드한테 이거 내탓아니다. 데이터가 없다고 한다. 들어오는 값 없다. 다시 확인해라 100만번 말함.ㅋ,, 근데 결국 내 문제..ㅎ

 

이 글을 보시진 않으시겠지만 죄송합니다~ 죄송합니ㅏㄷ~~~ㅏㅏ~~ㅠㅠ 당신의 오후시간을 훔쳐서 죄송합니다ㅠㅠ..

진짜 면목이 없음.. 오늘 하루 일시 휴직하고싶을정도로 창피함..

 

다시는 같은 실수를 반복하는 일 없도록 기록한다. 정신차리고 살어~~ 내 자신아~~~~~~~~~~~~~

반응형