RabbitMQ Failed to convert message.No method found for class java.lang.String问题解决

问题描述:

        org.springframework.amqp.rabbit.support.ListenerExecutionFailedException: Failed to convert message
        Caused by: org.springframework.amqp.AmqpException: No method found for class java.lang.String

问题分析:

1、消息生产者发送的消息类型为String,消息消费者接收的消息类型为Message,导致接收的时候类型转换不对。

@Component
public class MessageProvider {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void send(String exchange,String routingKey,String content){
        rabbitTemplate.convertAndSend(exchange,routingKey,content);
    }
}
@Component
@RabbitListener(queues = "directqueue2")
public class MessageReceiver {
    @RabbitHandler
    public void process(Message message) throws InterruptedException {
        Thread.sleep(1000);
    }
}

解决办法:消息生产者发送的消息类型和消息消费者接收的消息类型一致即可。

@Component
public class MessageProvider {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void send(String exchange,String routingKey,String content){
        rabbitTemplate.convertAndSend(exchange,routingKey,content.getBytes());
    }
}
@Component
@RabbitListener(queues = "directqueue2")
public class MessageReceiver {
    @RabbitHandler
    public void process(byte[] message) throws InterruptedException {
        Thread.sleep(1000);
    }
}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你遇到的问题是启动rabbitmq-server时出现了"Failed to start rabbitmq-server.service: Unit not found"的错误。根据你提供的引用,这个错误信息表示系统找不到rabbitmq-server的单元文件。这可能是由于RabbitMQ未正确安装或配置导致的。 为了解决这个问题,你可以尝试以下步骤: 1. 首先,确保你已经正确安装了RabbitMQ。你可以通过在终端中运行"sudo apt-get install rabbitmq-server"(适用于Debian/Ubuntu系统)或者"sudo yum install rabbitmq-server"(适用于CentOS/RHEL系统)来安装RabbitMQ。 2. 如果你已经正确安装了RabbitMQ但仍然遇到这个问题,那么可能是由于单元文件不存在或损坏导致的。你可以尝试通过重新安装RabbitMQ解决这个问题。可以运行"sudo apt-get purge rabbitmq-server"(适用于Debian/Ubuntu系统)或者"sudo yum remove rabbitmq-server"(适用于CentOS/RHEL系统)来卸载RabbitMQ,然后再重新安装。 3. 如果重新安装仍然无法解决问题,那么可能是由于配置文件中的错误导致的。你可以检查RabbitMQ的配置文件,通常位于"/etc/rabbitmq/rabbitmq.conf"或者"/etc/rabbitmq/rabbitmq.config"。确保配置文件中的路径和选项正确设置。 4. 另外,还可以尝试在启动命令中指定单元文件的路径。你可以尝试使用"./rabbitmq-server -detached"的命令来启动RabbitMQ,并确保在命令中指定了正确的单元文件路径。 总结一下,如果你遇到"Failed to start rabbitmq-server.service: Unit not found"的错误,你可以尝试重新安装RabbitMQ,检查配置文件的正确性,或者指定单元文件的路径来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [linux遇到问题](https://blog.csdn.net/nb_forever/article/details/72159796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [rabbitmq报错Failed to start RabbitMQ broker(更新20220701)](https://blog.csdn.net/avatar_2009/article/details/118524036)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值