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

来源:4-16 RabbitMQ与SpringBoot2.0整合实战-4

秋之随笔

2019-04-22

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

生产端:
图片描述

消费端
图片描述

写回答

4回答

LBruce

2019-05-04

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

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

1
5
慕仔8930017
回复
LBruce
多谢多谢
2020-06-23
共5条回复

LBruce

2020-06-23

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

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

//img.mukewang.com/szimg/5ef1a5310912cc1f13950560.jpg


1
0

LBruce

2020-06-23

回答楼上一位同学的问题

  1. 自定义MessageConverter

    //img.mukewang.com/szimg/5ef1a43009cc556614110637.jpg

  2. 使用自己自定义的MessageConverter

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

1
0

幕布斯2529510

2019-04-23

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

0
0

RabbitMQ精讲 从0到1驾驭RabbitMQ应用与设计

从0到1,全面深入掌握RabbitMQ消息中间件技术

1460 学习 · 443 问题

查看课程