0

假设我有这些行:

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

4

2 回答 2

4

您需要转换为扩展远程的接口

RemoteInterface probe = (RemoteInterface)registry.lookup(REMOTE_OBJ_NAME);
probe.doSomething(); 

这是因为您永远不会取回实际对象,而是将任何方法调用转发给实际对象的存根对象

于 2012-09-19T13:55:55.683 回答
-1

如果您的类实现了 Serializable,则不要扩展 Remote

于 2013-05-23T03:52:11.150 回答