I have a problem about sending message from advertisement service to report service through RabbitMq.
I run the rabbitmq through docker. Here is the code shown below.
rabbitmq:
image: "rabbitmq:3-management"
container_name: "rmq3"
environment:
RABBITMQ_DEFAULT_USER: "rabbitmq"
RABBITMQ_DEFAULT_PASS: "123456"
ports:
- "5672:5672"
- "15672:15672"
When I tried to get message from rabbitTemplate.convertAndSend in advertisement service. I got an error in report service.
Here is the error shown below.
Caused by: org.springframework.messaging.converter.MessageConversionException: Cannot convert from [[B] to [com.springbootmicroservices.report.dto.AdvertisementDto] for GenericMessage [payload=byte[59], headers={amqp_receivedDeliveryMode=PERSISTENT, amqp_receivedRoutingKey=queue-advertisement, amqp_contentEncoding=UTF-8, amqp_deliveryTag=1, amqp_consumerQueue=queue-advertisement, amqp_redelivered=false, id=38ab4c7f-6de4-dbbd-6471-5ba1cf2a80bc, amqp_consumerTag=amq.ctag-d4XUFeupnFO59f5OKRwlTQ, amqp_lastInBatch=false, contentType=application/json, __TypeId__=com.springbootmicroservices.advertisement.dto.AdvertisementDto, timestamp=1659551606120}]
How can I fix the issue?
Here is my project link : Link
After I defined both this bean in advertisement and report service, the issue disappeared. Here is the bean
@Bean
public MessageConverter jsonMessageConverter(ObjectMapper objectMapper) {
return new Jackson2JsonMessageConverter(objectMapper);
}