RMI客户端'无法转换为'例外

时间:2012-09-19 13:48:21

标签: java rmi

假设我有以下几行:

Registry registry = LocateRegistry.getRegistry(2121);
RemoteObject probe = (RemoteObject)registry.lookup(REMOTE_OBJ_NAME);//this throws exception
probe.doSomething();

例外是:

  

java.lang.ClassCastException: $Proxy1 cannot be cast to app.RemoteObject

为了清楚起见,RemoteObject实现了一个扩展java.rmi.Remote的接口。

2 个答案:

答案 0 :(得分:4)

您需要转换为扩展Remote

的界面
RemoteInterface probe = (RemoteInterface)registry.lookup(REMOTE_OBJ_NAME);
probe.doSomething(); 

这是因为你永远不会得到实际的对象,而是一个将任何方法调用转发给实际对象的存根对象

答案 1 :(得分:-1)

如果您的类实现了Serializable

,请不要扩展Remote