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

Remote を拡張したインターフェースにキャストする必要があります

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

これは、実際のオブジェクトを取得することはなく、メソッド呼び出しを実際のオブジェクトに転送するスタブ オブジェクトを取得するためです。

于 2012-09-19T13:55:55.683 に答える