2

私は小さな RMI チャット プログラムを作成し、適切にコンパイルしましたが、クライアント プログラムを実行しようとすると例外 " java.rmi.NotBoundException - ServerInterface" が発生します。サーバー プログラムはエラーなしで実行されます。これを解決するのを手伝ってください。

ここにクライアントコードの一部があります

public static void main (String[] args)
{
String address = "rmi://localhost/ServerInterface";
try
{
ServerInterface si= (ServerInterface) Naming.lookup(address);
new Thread(new Client(si)).start();
}
catch (Exception e)
{
System.err.println(e.toString()) ;
}
}
4

3 に答える 3

3

バインドされていない名前を検索しようとしているようです。

public class NotBoundException extends Exception

関連付けられたバインドを持たない名前をレジストリで検索またはバインド解除しようとすると、NotBoundException がスローされます。

于 2012-11-09T05:21:50.420 に答える
1

関連付けられたバインドを持たない名前をレジストリで検索またはバインド解除しようとすると、NotBoundException がスローされます。

サーバーコードはどのように見えますか? この例外は、サーバーが正しく設定されていないことが原因である可能性が最も高いです。

あなたのサーバーコードでは、名前でバインドされていると思いますChatServer

 Naming.rebind("ChatServer", new Server());

しかし、クライアントコードではServerInterfacenameを使用しています

String address = "rmi://localhost/ServerInterface";

詳しくはネーミング

于 2012-11-09T05:23:51.280 に答える
0

registry.rebind(ClassName.class.getSimpleName(), new ClassImplementaion()) が ClassImplementation と一致していることを確認してください。

于 2014-12-26T09:02:25.863 に答える