728x90
에러내용
java.lang.IllegalArgumentException: SimpleMessageConverter only supports String, byte[] and Serializable payloads, received: com.backend.curriculum.rabbitMq.TransferRequest
에러원인
- RabbitMQ에서 메시지를 전송할 때 사용하는 기본 MessageConverter가 TransferRequest 객체를 처리할 수 없어서 발생
- TransferRequest를 RabbitMQ가 이해할 수 있는 형식으로 변환하거나, 적절한 MessageConverter를 설정
해결방법
RabbitMqConfig.class (AS-IS)
@Configuration
public class RabbitMQConfig {
public static final String TRANSFER_QUEUE = "transfer_queue";
@Bean // 큐 정의
public Queue transferQueue() {
// durable: true로 영속성 보장
return new Queue(TRANSFER_QUEUE, true);
}
}
RabbitMqConfig.class (TO-BE)
@Configuration
public class RabbitMQConfig {
public static final String TRANSFER_QUEUE = "transfer_queue";
@Bean // 큐 정의
public Queue transferQueue() {
// durable: true로 영속성 보장
return new Queue(TRANSFER_QUEUE, true);
}
@Bean // JSON 메시지 컨버터 설정
public Jackson2JsonMessageConverter messageConverter() {
return new Jackson2JsonMessageConverter();
}
@Bean // RabbitTemplate에 컨버터 적용
public RabbitTemplate rabbitTemplate(org.springframework.amqp.rabbit.connection.ConnectionFactory connectionFactory) {
RabbitTemplate template = new RabbitTemplate(connectionFactory);
template.setMessageConverter(messageConverter());
return template;
}
}
728x90
'Error' 카테고리의 다른 글
Spring Cloud Gateway Config Error (0) | 2024.03.24 |
---|---|
Kafka bitnami/kafka:3.4 트러블슈팅 (0) | 2023.12.31 |
Failed to load ApplicationContext (0) | 2023.01.22 |
docker push denied requested access to the resource is denied (0) | 2023.01.12 |
Only one usage of each socket address (protocol/network address/port) is normally permitted. (0) | 2023.01.08 |
댓글