반응형
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Long` from Object value (token `JsonToken.START_OBJECT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.Long` from Object value (token `JsonToken.START_OBJECT`)
문제가 되었던 코드
클라이언트 부분
UserAPI.setUserRegionAndProfile({
userKey: userKey,
userArea: userArea,
userRegion: userRegion,
regionCongressmanId: congressmanId,
userImg: userImg,
userName: userName,
userGender: userGender,
userYearOfBirth: userYearOfBirth,
});
서버 API요청 부분
const setUserRegionAndProfile = (
userKey,
userArea,
userRegion,
regionCongressmanId,
userImg,
userName,
userYearOfBirth,
userGender
) => {
return axios.put("/userRegionAndProfile", {
userKey: userKey,
userArea: userArea,
userRegion: userRegion,
regionCongressmanId: regionCongressmanId,
userImg: userImg,
userName: userName,
userYearOfBirth: userYearOfBirth,
userGender: userGender,
});
};
JSON parse error: Cannot deserialize value of type `java.lang.Long` from Object value (token `JsonToken.START_OBJECT`);
해당 오류를 보고 Long 처리에 문제가 생긴 것 같아 Dto 파일도 검사해보고 데이터 타입이 문제인가 MySQL도 검사해봤는데 해결이 안 돼서 API요청 파라미터들을 콘솔로 찍어보니 아래와 같이 모두 undefined로 표시가 되는 것을 보고 확인해보니 파라미터들을 콤마로 구분해서 보내는 게 아닌 객체로 감싸서 보내고 있어 생긴 오류였습니다.
@PutMapping("/userRegionAndProfile")
public void setUserRegionAndProfile(@RequestBody UserDto User) {
userService.setUserRegionAndProfile(User);
}
userKey의 데이터 타입이 Long형인데 undefined로 넘어와서 @RequestBody UserDto User를 처리하면서 생긴 오류!
반응형