工作中使用Serializable遇到的問題:[JMSClientExceptions:055115]Error deserializing an object

工作中使用Serializable遇到的問題:[JMSClientExceptions:055115]Error deserializing an object

首先,說一下我的系統的概況:

工程1-WebSevice:發送A的實例至QueueA。
工程2-JMS:MDB從QueueA中獲取對象,轉換成A,再進行相關的處理。
Serializable類:A
都運行在Weblogic環境下。

最近,升級工程1,在功能升級的情況下對代碼進行代碼優化。其中,將A的包路徑更改,部署上就報錯:[JMSClientExceptions:055115]Error deserializing an object。

開始,我還以爲是2個工程的A不同呢,將工程2下的A複製到工程1中,再部署還是不成。最後,當把A在工程1的包路徑改成跟工程2的包路徑一樣時,問題解決。

看來,Serializable在串行化的時候,類的路徑也被做了處理。這樣,若2個工程的類路徑不同的話,將會導致在反串行化時失敗。

所以,如果在多個項目中傳遞Serializable對象,會比較麻煩。必須要保證Serializable的一致。一個地方動了,則所有地方也得跟着動。一個地方不改,其他地方也不能更改。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章