??? 項目第二階段,管理客戶端和管理服務器。架構C/S,技術RMI
??? 今天上午做了一個簡單的測試系統,用來測試前兩天所編寫的構件:寫了一遠程服務器,一個命令行客戶端。OK,編譯時也沒出錯。
??? 然而運行起來,可怕的事情發(fā)生了:先前寫的實體類無法傳送給客戶端。程序拋出了異常。仔細觀察,發(fā)現是產生了對象無法序列化的IO異常。
??? RMI底層通過TCP協議進行通訊,ObjectInputStream和ObjectOutputStream來負責對象的輸入和輸出。實在是不明白,以前做RMI系統實驗的時候,根本沒遇到這種序列化異常:傳String就傳String,傳Vector就傳Vector。
?? 猜想應該是我寫的那些類無法序列化的緣故。參考了API文檔,發(fā)現這個東西:MarshalledObject,可以對其構造方法的對象進行序列化(說穿了就是變成字節(jié)流)。
? 迅速改造了測試程序,OK,能穿對象了。但是.....序列化以后無法反序列化!天,類對象實例全部變成了組毫無意義的字節(jié)數組。
? 應該有其他的辦法,SUN的Java文檔實在不能和MSDN相比,太過于簡單啦。
? 經過3個小時的資料查閱和測試,終于找到了種正確而且異常簡單的方法:對先前的代碼進行簡單的重構:讓他們統統實現java.io.Serializable接口。只改一行代碼,全部解決!
? ^_^
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
25 | 26 | 27 | 28 | 29 | 30 | 1 | |||
2 | 3 | 4 | 5 | 6 | 7 | 8 | |||
9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
16 | 17 | 18 | 19 | 20 | 21 | 22 | |||
23 | 24 | 25 | 26 | 27 | 28 | 29 | |||
30 | 31 | 1 | 2 | 3 | 4 | 5 |
如果真的給你一片天,你敢不敢要?
常用鏈接
留言簿(3)
隨筆分類
隨筆檔案
- 2007年6月 (3)
- 2007年1月 (1)
- 2006年11月 (1)
- 2006年10月 (6)
- 2006年9月 (1)
- 2006年8月 (2)
- 2006年7月 (8)
- 2006年6月 (1)
- 2006年5月 (3)
- 2006年4月 (4)
相冊
搜索
最新評論

- 1.?re: 一點小感想:為什么那么多人說Java慢???[未登錄]
- 評論內容較長,點擊標題查看
- --夏
- 2.?re: 一點小感想:為什么那么多人說Java慢???[未登錄]
-
莫名被最后一句話戳中笑點@fjchenq
- --aa
- 3.?re: 一點小感想:為什么那么多人說Java慢???
- 評論內容較長,點擊標題查看
- --嗷嗷嗷
- 4.?re: 一點小感想:為什么那么多人說Java慢???[未登錄]
- c++存在一個函數表,訪問一段代碼至少要訪問兩次內存,所以在對性能要求很高的操作系統內核上不適宜使用
- --光光
- 5.?re: 一點小感想:為什么那么多人說Java慢???
- Java桌面應用慢到死!垃圾一樣的東西
- --的