반응형

 

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를 처리하면서 생긴 오류!

반응형

+ Recent posts