请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

生产端和消费端实体路径不一致的问题

老师,你好,我生产端的 Order 实体的路径为com.bfxy.springboot.entity.Order,
消费端 Order实体路径 为 com.wxmp.entity.Order, 这两个实体路径不一致。
我的问题是: 这两个实体路径一定要一致吗,如果不需要一定一致那需要怎么改呢?

生产端:
图片描述

消费端
图片描述

正在回答

4回答

LBruce 2019-05-04 23:22:17

这个问题是因为默认的MessageConverter转换的时候,要求这两个实体路径一定要一致,不然会出错。详情你可以看看这篇文章 https://www.jianshu.com/p/f94b2e8be0a9

当然生产端和消费端的消息实体也可以不一致的。我是这么做的,在消费端和生产端都配置自定义MessageConverter,使用FastJson进行消息体的转换。https://img1.sycdn.imooc.com//szimg/5ccdadf000015dbc13150531.jpg

1 回复 有任何疑惑可以回复我~
  • 老哥,我配置了这个类还是不行,会报错,你遇到过没有?
    Caused by: org.springframework.messaging.converter.MessageConversionException: Cannot convert from [com.alibaba.fastjson.JSONObject] to [com.lin.consumer.entity.Order]
    回复 有任何疑惑可以回复我~ 2020-06-23 13:40:46
  • LBruce 回复 慕仔8930017 #2
    没有。。。
    回复 有任何疑惑可以回复我~ 2020-06-23 14:21:38
  • 慕仔8930017 回复 LBruce #3
    你光配置这个类就行了吗?发送方和消费方有没有其他的代码更改呢?谢谢啦
    回复 有任何疑惑可以回复我~ 2020-06-23 14:22:43
LBruce 2020-06-23 14:46:17

回复楼上一位同学的问题。。。PS.补充消息发送与接收代码

https://img1.sycdn.imooc.com/szimg/5ef1a531098a92ad10910441.jpg

https://img1.sycdn.imooc.com//szimg/5ef1a5310912cc1f13950560.jpg


1 回复 有任何疑惑可以回复我~
LBruce 2020-06-23 14:42:45

回答楼上一位同学的问题

  1. 自定义MessageConverter

    https://img1.sycdn.imooc.com//szimg/5ef1a43009cc556614110637.jpg

  2. 使用自己自定义的MessageConverter

    https://img1.sycdn.imooc.com/szimg/5ef1a45b09a51c1e13200399.jpg

1 回复 有任何疑惑可以回复我~
幕布斯2529510 2019-04-23 14:51:14

生产端和消费端实体类的包名改成一直,譬如都为com.bfxy.springboot.entity.Order或者都为 com.wxmp.entity.Order  是消费端拋的异常,生产端其实已经将消息成功发出去了,消费端在接收消息实体类的时候不是加了一个@payload的注解吗?这两个实体类不是都继承了serializable接口吗,主要是用来类在传输的时候的序列化和反序列化的,具体为什么包名不一样就不能被反序列化我就不是很清楚了

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信