我尝试使用RabbitTemplate(使用Sping Boot )在Queue上发布消息,并收到此消息。我已经尝试寻找解决方案。
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);
}
型
我欣赏任何合作。
3条答案
按热度按时间41ik7eoe1#
问题是你的类
SimpleMessage
没有实现Serializable
。RabbitTemplate.convertAndSend
使用SimpleMessageConveter
将您的消息转换为amqp消息。但是SimpleMessageConverter
需要该消息来实现接口Serializable
。SimpleMessage
类应该如下所示:字符串
您可以了解更多关于可序列化对象here的信息。
pdtvr36n2#
还有另一个解决方案:使用MessageConverter的不同实现,而不是默认的SimpleMessageConverter。
例如,Jackson2JsonMessageConverter:
字符串
r7knjye23#
在我的情况下,改变rabbitTemplate帮助。首先,我有一个:
字符串
然后我把它改成了这个:
型