1

Java RMI を使用するサーバーとクライアントがあります。1 つのクライアントを使用する場合、以下のコードで問題ありません。しかし、クライアントに接続してから 2 番目のクライアントに接続すると、既に使用中のポートの例外がスローされます。それで問題ないので、接続されているクライアントを切断してから、2 番目のクライアントとの接続を再試行します。それは私にこれを与えます:

java.rmi.NoSuchObjectException: テーブルにそのようなオブジェクトがありません

どうしてこれなの?

//CONNECT

Registry registry = LocateRegistry.getRegistry(
    Options.getRegistryIp(), Options.getRegistryPort());
server = (IServer) registry.lookup(Constants.MB_SERVER_NAME);

UnicastRemoteObject.exportObject(client, Options.getMyPort());
server.registerClient(client);

//DISCONNECT

server.removeClient(client, client.getUser());
UnicastRemoteObject.unexportObject(client, false);
4

1 に答える 1

1

NoSuchObjectException は、スタブが明示的または GC を介してアンエクスポートされたリモート オブジェクトを参照していることを意味します。これは、lookup()、registerClient()、または removeClient() で取得していますか?

于 2011-02-14T00:50:18.977 に答える