kotlin 환경에서 OpenFeign ErrorDecode 시 발생하는 역직렬화 작업 오류

xlwdn·2023년 3월 19일
0

문제 상황


기존 A서비스에서 B 서비스 호출 시 FeignException 핸들링은 작업해두었으나, 그로인해 오류가 발생하게되면 핸들링해놓은 응답만 반환될 뿐, 특정 상황에 커스텀된 오류 메시지가 A서비스를 호출한 클라이언트 측까지 전달되지 않았습니다. 고로 ErrorDecode를 통해 B의 오류 메시지를 클라이언트측까지 전달하려 했으나.....


com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.info.info_v2_backend.common.exception.ErrorResponse` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (byte[])"{"message":"에러메시지","status":404,"code":"C09"}"; line: 1, column: 2]

위와 같이 생성자가 나타나지 않는다고 발생합니다.

해결

해당 문제는 기본 생성자가 생성되지 않아서 발생하는 문제이므로 위와 같이 설정해주었습니다.
(kotlin docs에는 아래와 같은 방법도 제시하고 있었습니다.https://kotlinlang.org/docs/no-arg-plugin.html)

이후 요청시 B 서비스의 응답이 정상적으로 반환됨을 확인할 수 있었습니다.

{
    "message": "에러메시지",
    "status": 404,
    "code": "C09"
}

0개의 댓글