본문 바로가기

오류일기

스프링 - 카프카 MessageConversionException 오류 해결법

현상

카프카에 있는 데이터를 서버로 가져와 객체로 다시 매핑하는 과정에서 다음과 오류가 발생한다.

Caused by: org.springframework.messaging.converter.MessageConversionException: failed to resolve class name. Class not found [um.uamserver.domain.dto.AdsbData]

원인

데이터를 보내는 송신측에서 카프카로 jsonSerializer를 통해 객체를 직렬화해서 보낼때 패키지 정보까지 헤더에 같이 보내고 데이터를 받는 수신 측에서는 카프카에서 jsonDeserializer를 통해 패키지 정보까지 같이 역직렬화를 한다. 이때 만약 서로 송수신측의 데이터 패키지가 다르다면 오류가 발생한다.

고치는 법

카프카 설정에서 상대방의 패키지 정보를 추가하거나 헤더 정보를 빼서 받으면 객체 형태로 잘받을 수 있다.

필자는 후자의 방식을 선택했다.

참고

https://yeon-kr.tistory.com/181

 

(Kafka) 객체를 JSON 타입으로 넘겨보자

1) 서론 Kafka는 메시지 브로커를 이용해 서로 다른 프로젝트 사이에 메시지를 주고받을 수 있습니다. 이를 통해 비동기적인 처리를 할 수 있는데요. 메시지를 넘겨줄 때 int, string 등 타입을 지정

yeon-kr.tistory.com