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