rmi-iiop アプリケーション (非常に単純なチャット) を構築しようとしています。サーバーがクライアントと通信できるようにする必要があるため、接続ユーザーのインターフェイスを作成することを考えました。
public interface UserInterface extends Remote {
public void receiveMessage(String message) throws RemoteException;
}
次に、クライアント側でメソッド server can execute('receiveMessage') を持つ User クラスを作成します。
public class User extends PortableRemoteObject implements UserInterface {
protected User() throws RemoteException {
super();
}
@Override
public void receiveMessage(String message) throws RemoteException {
client.addMessageToGUI();
}
}
rmic -iiop Chat User
生成するものを使用します_Chat_Tie.class _ChatInterface_Stub.class _User_Tie.class _UserInterface_Stub.class
すべてのファイルをサーバー側とクライアント側に配置してアプリケーションを実行すると、次のエラーが発生します。
java.rmi.StubNotFoundException: Stub class not found: User_Stub; nested exception is:
ここでの違いは、Chat クラスがサーバー上で作成され、クライアントがインターフェイスを使用してそれを使用することです (これは正常に動作します) が、ユーザー クラスはクライアント側で作成する必要があるため、クライアントは部分的にサーバーとして機能します。
私の質問はJava RMI - クライアントをサーバーにします が、rmi-ioop の実装に似ています。
つまり、ローカルオブジェクト参照をサーバーに送信して、操作を実行できるようにするにはどうすればよいですか?
ありがとう!レオンティ