【发布时间】:2019-03-15 19:53:35
【问题描述】:
我尝试使用 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);
}
感谢任何合作。
【问题讨论】:
-
某个地方正在调用
SimpleMessageConverter.createMessage。我不记得 convertAndSend 是否为你调用了。 -
查看 spring 的源代码,convertAndSend,调用
MessageConverter.toMessage,后者调用MessageConverter.createMessage,因为这是SimpleMessage的一个实例,所以我们得到SimpleMessageConverter.createMessage。 -
同意迪伦在下面提到的。您需要将您的对象设为可序列化。在此处查看与您的用例类似的发送消息的一些示例。 thepracticaldeveloper.com/2016/10/23/…
标签: java spring-boot rabbitmq amqp