[트러블 슈팅] @Getter가 필요해!

드코딩·2024년 8월 28일
0

트러블슈팅

목록 보기
1/1

프로젝트를 진행하면서 자주하는 실수를 정리하려고한다.

  1. ErrorResult 객체를 만들어서 응답하는 과정에서

    org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation

    오류가 계속 발생했다.

    결론 : Jackson Mapper를 사용하기 위해서는 Getter가 필요했다.

    나는 아래와 같이 예외처리 핸들러를 작성했었다.

        @ExceptionHandler(VerificationCodeRequestException.class)
        public ResponseEntity<ErrorResult> handleVerificationCodeRequestException(VerificationCodeRequestException e) {
            log.error("인증번호 발급 오류 {}", e.getMessage());
    
            ErrorResult errorResult = ErrorResult.builder()
                    .error("인증번호 발급 오류")
                    .message(e.getMessage())
                    .build();
    
            log.error("ErrorResult : {}", errorResult);
    
            return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(errorResult);
        }

    문제 해결전

    package com.example.Auth.exception;
    
    import lombok.Builder;
    
    @Builder
    public class ErrorResult {
        private final String error;
        private final String message;
    }
    

    문제 없이 ErrorResult가 생성되는 것도 확인했고 두번째 에러 로그에도 정상적으로 출력이된다.

    디버깅시 return도 정상적으로 나갔다. 하지만

401 에러가 아닌 500에러가 계속 발생한다.

구글링과 여러 삽질을 계속하다가 문득 아 @Getter가 없는데 직렬화가 가능할까?

라는 생각이 들었고 해당 어노테이션을 추가해줬다.

자주하는 실수인데 항상 찾는데 오래걸린다.


⭐틀린 내용 수정,지적은 언제나 환영합니다.⭐

0개의 댓글

관련 채용 정보