2019-07-31 20:07:44.751 WARN 13048 --- [cTaskExecutor-2] s.a.r.l.ConditionalRejectingErrorHandler : Execution of Rabbit message listener failed.
org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener threw exception
Caused by: org.springframework.amqp.support.converter.MessageConversionException: failed to convert serialized Message content
Caused by: java.lang.IllegalStateException: Could not deserialize object type
Caused by: java.lang.ClassNotFoundException: cn.waqwb.springbootproducer.entity.Order
2019-07-31 20:07:44.754 ERROR 13048 --- [cTaskExecutor-2] o.s.a.r.l.SimpleMessageListenerContainer : Execution of Rabbit message listener failed, and the error handler threw an exception
[spring-rabbit-2.1.4.RELEASE.jar:2.1.4.RELEASE]
老师,求助,这是异常的部分信息,停了程序,删除exchange和queue重新启动,依然还是这个错误,其中有个错误是加载不到order类,这个让我觉得很尴尬,不知道是因为哪里没有加载到,autowired都有
serialVersionUID 也必须一模一样
2个实体类Order改成一样的包名就可以了
这个错误信息,你再往下看看,会发现报的有 ClassNotFoundException ,报的就是你那个实体类的路径错误,再仔细看看,发现这个路径就是你的发送端的实体类的路径,是不是很神奇,消费端为啥报的是发送端的路径?因为你这两个路径不一致,改成一样的就ok了
反序列化失败
在consumer中使用producer的entity类 即order
我猜 是你发送消息的消息体的类型和你监听接收的类型不一致 导致实例化失败