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

您似乎正在尝试查找未绑定的名称。

公共类 NotBoundException 扩展异常

如果尝试在注册表中查找或取消绑定没有关联绑定的名称,则会引发 NotBoundException。

于 2012-11-09T05:21:50.420 回答
1

如果尝试在注册表中查找或取消绑定没有关联绑定的名称,则会引发 NotBoundException。

您的服务器代码是什么样的?您遇到的这个异常很可能是由于服务器设置不正确造成的。

我认为在您的服务器代码中,您与名称绑定ChatServer

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

但是在您的客户端代码中,您使用的是ServerInterface名称

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 回答