RabbitMq无法在Spring Boot微服务中将消息从一个服务发送到另一个服务

a9wyjsp7  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(177)

我在通过RabbitMq广告服务报告服务发送消息时遇到问题。
我通过docker运行了rabbitmq,代码如下。

rabbitmq:
    image: "rabbitmq:3-management"
    container_name: "rmq3"
    environment:
      RABBITMQ_DEFAULT_USER: "rabbitmq"
      RABBITMQ_DEFAULT_PASS: "123456"
    ports:
      - "5672:5672"
      - "15672:15672"

尝试从广告服务中的rabbitTemplate.convertAndSend获取消息时,报告服务中出现错误
下面显示的是错误。

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}]

如何解决此问题?
下面是我的项目链接:Link

8e2ybdfx

8e2ybdfx1#

在我在广告和报告服务中定义了这个bean之后,这个问题就消失了。

@Bean
public MessageConverter jsonMessageConverter(ObjectMapper objectMapper) {
   return new Jackson2JsonMessageConverter(objectMapper);
}

相关问题