Java RMI調用發生ClassCastException的解決方法

在學習RMI的時候,通過網上資料或者《Java網絡編程和分佈式計算》經典教程對RMI有了一定的瞭解。但是前幾天在寫一個網絡應用軟件的時候卻發生了點問題。

服務器端,客戶端都按照RMI規範完成之後,客戶端在Naming.lookup()之後,獲得的Object轉換成接口的時候總是拋出java.lang.ClassCastException $Proxy ... 異常。調試了很長時間,也google了很多東西,但是都沒有合適的解決方案。最後還是自力更生,豐衣足食了  

 主要原因:是服務器端的包結構和服務器端的包結構不同,這就造成了實際上你的服務器端的Interface的名字和你客戶端的Interface名稱不同,所以當然會造成轉型異常了。  

解決方法:把自己客戶端涉及到RMI部分調整和服務器端完全一致。可能你的系統客戶端包爲com.xxx.client,而服務器端的包爲com.xxx.server。你只需要將服務器端和客戶端的包都改成同一個包名即可。例如都改成com.xxx.rmi  

 這樣,調用一下看一下,哈哈,是不是沒有異常了。就這樣了,希望對大家有幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章