2013-04-18 82 views
2

我在我的系统运行这段代码,我不经受写将localAddress(本地主机)或远程ADDRES(IP地址)...线程“main”中的异常java.rmi.ConnectException:连接拒绝主机:192.168.1.55;嵌套的例外是:

ref= (RMISIntf)Naming.lookup("rmi://"+"192.168.0.15"+"/RMIServer"); 

,也是我尝试这种代码也直到我没有得到任何回应

ref= (RMISIntf)Naming.lookup("rmi://"+"localhost"+":"+8033+"/RMIServer"); 
//MyRemoteObject ro = (MyRemoteObject) Naming.lookup("//" + "localhost" + ":" + port + "/" + name); 
    //ref=Naming.rebind("rmi://localhost:8080/RmiServer",RMISIntf); 

回答

0

你应该能够使它工作使用任何两个人,但请记住,它与外部地址时,您可能需要创建防火墙上的一些规则和在调制解调器上转发。

2

首先用本地主机测试是很好的,因为它很容易,并且不需要像远程连接一样设置规则,即外部地址。

Java RMI faq说,

适当的解决方法是启动服务器时设置系统属性 java.rmi.server.hostname。 属性的值应该是服务器的外部可访问主机名(或IP地址) - 无论在作为主机部分指定为 Naming.lookup是否足够好时都适用。

也只是看看远程方法调用here的属性。

+0

我开始rmiregisrty之前执行这个程序仍然我得到的错误.... – user2293819 2013-04-18 17:52:45

+0

我用localhost测试它仍然显示错误.... – user2293819 2013-04-19 18:26:30

+0

@ user2293819这个答案是正确的。 +1。如果您还没有启动RMI注册表,您的服务器将失败,您甚至不会有这么远。这不相关。 'localhost'不适合客户需要理解的值。您需要将其设置为客户端可访问的服务器主机的IP地址。 – EJP 2013-04-20 09:51:17

相关问题