为了账号安全,请及时绑定邮箱和手机立即绑定

根据视频写的代码,无法序列化

先运行consumer端,运行成功,rabbitmq有写入exchange和queue,接着运行producer端的测试程序,consumer端这边报错。

https://img1.sycdn.imooc.com//5ba08b220001e54f08730147.jpg

https://img1.sycdn.imooc.com//5ba08b2b000178e817940789.jpg

https://img1.sycdn.imooc.com//5ba08b510001c58b07550354.jpg

https://img1.sycdn.imooc.com//5ba08b5200017f9908280301.jpg

两边均有implements序列化接口,但是只要运行测试就报序列化出问题!!!


正在回答

4 回答

第一次是照着老师的步骤没发现问题,后来是自己重新做一遍的时候试了很长时间都是报这个错,心累....

Caused by: org.springframework.amqp.support.converter.MessageConversionException: failed to convert serialized Message content

没想到  是包名的问题。。。必须统一,序列化id还必须一致。。。  

有点坑.....

0 回复 有任何疑惑可以回复我~

包名必须要一样。这个太狠了。不知道什么梗

0 回复 有任何疑惑可以回复我~

在Util里建立一个类,把发送和接收端的Order对象转化为JSON再发到队列里/再监听。然后转化一下。

参考下https://www.toutiao.com/i6609789756479898116/ 我也是百度到的

核心就是

方案1、消费者引用生产者项目中的消息体即Order.java

在消费者项目上【右键】->【Bulid Path】->【Configure Build Path】->【Projects】->【Add】 选择生产者项目,然后消费者项目就可以引用生产者项目中类,这样完全保证了两个项目中JavaBean是一致的,所以能解决反序列失败的问题

方案2、生产者在发送消息前将消息体转换为JSONObject,消费者以JSONObject接收消息,再转换为对应的JavaBean

0 回复 有任何疑惑可以回复我~

是包名的问题。。。必须统一,序列化id还必须一致。。。

1 回复 有任何疑惑可以回复我~
#1

须木一瓜

包名还有相同?
2018-11-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

根据视频写的代码,无法序列化

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信