在維護一個老項目中使用到了hessian,雖然配置很簡單但是也遇到不少問題。
其中一個問題就是:看到別人的客戶端工程創建一個與服務器端工程類相同的實體類就可以直接引用,比如,服務端有一個xxx實體類,客戶端也有一個xxx實體類就可以直接調用,但是當我給服務端返回一個list<xxx實體類>的時候,就會報錯,錯誤提示是【com.caucho.hessian.io.SerializerFactory getDeserializer xxx is an unknown class】。
從錯誤提示上來看,意思也就是說無法反序列化,但是我的xxx實體類都已經實現了serilize接口,並給了指定的uid。
尋求答案無果,最終只能將list對象在服務端轉換為JSON字符串(String),然后在客戶端接收之后再進行轉換成list對象就暫時解決了這個問題了。
而關於要如何在hessian中正確傳遞list對象還是沒有研究明白,大概是對Java的序列化機制還不夠了解吧,有時間深入探究一下。
"請用你絕對清醒的理智去壓制你不該有的情緒。"