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  

 这样,调用一下看一下,哈哈,是不是没有异常了。就这样了,希望对大家有帮助。

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