使用RabbitTemplate发布消息时出现java.lang.IllegalArgumentException

问题描述 投票:0回答:1

我尝试使用RabbitTemplate在队列上发布消息(使用Spring Boot),我得到了这条消息。我已经尝试过寻找解决方案。

Caused by: java.lang.IllegalArgumentException: SimpleMessageConverter only supports String, byte[] and Serializable payloads, received: com.example.demo.SimpleMessage

也许这部分代码可以提供帮助

@Override
    public void run(String...strings) throws Exception {

        SimpleMessage simpleMessage = new SimpleMessage();
        simpleMessage.setName("FirstMessage");
        simpleMessage.setDescription("simpleDescription");

        rabbitTemplate.convertAndSend("TestExchange", "testRouting", simpleMessage);
    }

我很感激任何合作。

java spring-boot rabbitmq amqp
1个回答
2
投票

问题是你的班级SimpleMessage没有实现Serializable

RabbitTemplate.convertAndSend使用SimpleMessageConveter将您的消息转换为amqp消息。但是SimpleMessageConverter要求该消息来实现接口Serializable

您的SimpleMessage课程应如下所示:

public class SimpleMessage implements Serializable {
    ... your code here
}

您可以了解有关Serializable对象here的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.