根據(jù)視頻寫的代碼,無法序列化
先運(yùn)行consumer端,運(yùn)行成功,rabbitmq有寫入exchange和queue,接著運(yùn)行producer端的測(cè)試程序,consumer端這邊報(bào)錯(cuò)。
兩邊均有implements序列化接口,但是只要運(yùn)行測(cè)試就報(bào)序列化出問題!??!
先運(yùn)行consumer端,運(yùn)行成功,rabbitmq有寫入exchange和queue,接著運(yùn)行producer端的測(cè)試程序,consumer端這邊報(bào)錯(cuò)。
兩邊均有implements序列化接口,但是只要運(yùn)行測(cè)試就報(bào)序列化出問題!??!
舉報(bào)
2019-09-15
第一次是照著老師的步驟沒發(fā)現(xiàn)問題,后來是自己重新做一遍的時(shí)候試了很長時(shí)間都是報(bào)這個(gè)錯(cuò),心累....
Caused by: org.springframework.amqp.support.converter.MessageConversionException: failed to convert serialized Message content
沒想到? 是包名的問題。。。必須統(tǒng)一,序列化id還必須一致。。。??
有點(diǎn)坑.....
2019-05-06
包名必須要一樣。這個(gè)太狠了。不知道什么梗
2018-11-27
在Util里建立一個(gè)類,把發(fā)送和接收端的Order對(duì)象轉(zhuǎn)化為JSON再發(fā)到隊(duì)列里/再監(jiān)聽。然后轉(zhuǎn)化一下。
參考下https://www.toutiao.com/i6609789756479898116/?我也是百度到的
核心就是
方案1、消費(fèi)者引用生產(chǎn)者項(xiàng)目中的消息體即Order.java
在消費(fèi)者項(xiàng)目上【右鍵】->【Bulid Path】->【Configure Build Path】->【Projects】->【Add】 選擇生產(chǎn)者項(xiàng)目,然后消費(fèi)者項(xiàng)目就可以引用生產(chǎn)者項(xiàng)目中類,這樣完全保證了兩個(gè)項(xiàng)目中JavaBean是一致的,所以能解決反序列失敗的問題
方案2、生產(chǎn)者在發(fā)送消息前將消息體轉(zhuǎn)換為JSONObject,消費(fèi)者以JSONObject接收消息,再轉(zhuǎn)換為對(duì)應(yīng)的JavaBean
2018-09-18
是包名的問題。。。必須統(tǒng)一,序列化id還必須一致。。。