我是第一次尝试使用RMI注册表进行远程调用。我编写了实现它的接口和类。我试图调用它时遇到问题。我通过给start rmiregistry
开启了我的Windows机器中的rmiregistry,这打开了一个新的窗口。
客户端prg看起来像:
String host = "172.27.49.199:1099";
try {
System.out.println(LocateRegistry.getRegistry());
Registry registry = LocateRegistry.getRegistry(host,0);
Details stub = (Details) registry.lookup("Hello");
String response = stub.Name();
System.out.println("response: " + response);
} catch (Exception e) {
System.err.println("Client exception: " + e.toString());
e.printStackTrace();
}
我对host
需要给出的价值感到困惑。
我试过给:
(a)http://localhost
(b)http://localhost:1099
离开java.net.UnknownHostException: http://localhost:1099
。
更新
将主机更改为 My_Sys_IP 后,我丢失了java.net.UnknownHostException
但最终以Client exception: java.rmi.NotBoundException: Details
答案 0 :(得分:0)
我不知道你为何感到困惑。 host
是主机名或IP地址。 Javadoc没有说明使用网址。
它也没有说你可以传递零作为端口号。你不能。如果您不知道它应该是什么,请省略该参数。