인프런 커뮤니티 질문&답변

현석오님의 프로필 이미지
현석오

작성한 질문수

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

Spring Cloud OpenFeign (2)

Spring Cloud OpenFeign (2) 관련 질문 dto 관련 에러가 발생해요

작성

·

2K

0

0

dto related error occurred and I have a question

how to fix this error?

error message:

feign.codec.DecodeException: Type definition error: [simple type, class com.app.api.health.dto.HealthCheckResponseDto]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.app.api.health.dto.HealthCheckResponseDto (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

controller

    @GetMapping("/health/feign-test")
    public ResponseEntity<HealthCheckResponseDto> healthCheckTest() {
        HealthCheckResponseDto healthCheckResponseDto = helloClient.healthCheck();
        return ResponseEntity.ok(healthCheckResponseDto);
    }

dto

package com.app.api.health.dto;

import lombok.Builder;
import lombok.Getter;

import java.util.List;

@Getter @Builder
public class HealthCheckResponseDto {

    private String health;

    private List<String> activeProfiles;

}

답변 3

0

현석오님의 프로필 이미지
현석오
질문자

그리고 결과는 아래와 같은데 activeProfiles가 공백입니다. 혹시 이유를 알려주시면 대단히 감사요

구파고님의 프로필 이미지
구파고
지식공유자

현재 activeProfiles를 따로 지정하지 않으신거 같네요! Health Check API 강의 5분 12초부터 보시면 active profiles를 dev로 지정하는 부분을 보실 수 있습니다. 해당 부분과 동일하게 진행해주시면 dev로 응답결과가 올것입니다.

0

현석오님의 프로필 이미지
현석오
질문자

일단 이렇게 해결 했습니다
https://yuja-kong.tistory.com/99

package com.app.api.health.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

@AllArgsConstructor
@Getter @Builder
@NoArgsConstructor
public class HealthCheckResponseDto {

    private String health;

    private List<String> activeProfiles;

}

구파고 선생님 답변 감사합니다

저 혹시 멘토링 같은거 안하시나여?

템플릿 제작하면서 모르는 부분이 많은데

언제 한번 따로 배울수 없을까요?

 

 

구파고님의 프로필 이미지
구파고
지식공유자

멘토링까지 하기에는 제가 시간이 부족할꺼같아서 따로 계획은 없습니다 ㅜ

0

구파고님의 프로필 이미지
구파고
지식공유자

안녕하세요! json 데이터를 java object로 바꾸는 것을 deserialization(역직렬화) 라고 하는데 스프링부트 버전이나 롬복 버전에 따라서 오류가나는 분들이 있으신거 같습니다.

 

에러메세지를 보면 기본 생성자같은 생성자가 없어서 오류가 발생하고 있습니다. 롬복에서 제공하는 @NoArgsConstructor를 사용하면 기본생성자를 컴파일하면서 생성해주는데 해당 어노테이션을 클래스위에 선언해두면 해결될 것 입니다.

현석오님의 프로필 이미지
현석오

작성한 질문수

질문하기