質問

RMI-IIOPアプリケーションを構築しようとしています(非常に簡単なチャット)。私の考えは、私の考えが接続されたユーザーのインターフェイスを作成することでした。

public interface UserInterface extends Remote { 
    public void receiveMessage(String message) throws RemoteException;
}

次に、クライアント側では、Methods Serverを使用してユーザークラスを作成します( 'Receivemessage'):

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:

ここでの違いは、チャットクラスがサーバーで作成され、クライアントはインターフェイス(正常に動作する)を使用して使用することですが、ユーザークラスをクライアント側で作成する必要があるため、クライアントはサーバーとして部分的に動作することです。

私の質問はに似ています Java RMI-クライアントをサーバーにするしかし、RMI-IOOP実装の場合。

それでは、言葉で - ローカルオブジェクト参照をサーバーに送信して、操作を実行できるようにするにはどうすればよいですか?

ありがとう!レオンティ

役に立ちましたか?

解決 2

私が欠けていたのは、クライアント側の「タイ」クラスです(_user_tie.class)。通常、それは必要ありませんが、クライアント側にオブジェクトが作成された場合に備えて、私もそれを提供する必要がありました。

それが将来他の誰かのために時間を節約することを願っています:)

他のヒント

次のようなサーバーインターフェイスを作成します。

public interface ChatServer extends Remote {
  public void registerUser(UserInterface user) throws RemoteException;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top