“线程中的异常”;“主要”;java.rmi.ConnectException:拒绝连接主机:192.168.1.55;嵌套异常是:

“线程中的异常”;“主要”;java.rmi.ConnectException:拒绝连接主机:192.168.1.55;嵌套异常是:,java,exception,Java,Exception,我在我的系统中运行这段代码,我不想写localaddress(localhost)或remoteaddres(IP address) 我也会尝试这个代码,直到没有回应 ref= (RMISIntf)Naming.lookup("rmi://"+"localhost"+":"+8033+"/RMIServer"); //MyRemoteObject ro = (MyRemoteObject) Naming.lookup("//" + "localhost" + ":" + port + "/"

我在我的系统中运行这段代码,我不想写localaddress(localhost)或remoteaddres(IP address)

我也会尝试这个代码,直到没有回应

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

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

最好先使用本地主机进行测试,因为这很容易,并且不需要像远程连接(即外部地址)那样设置规则

他说,

适当的解决方法是设置系统属性 启动服务器时显示java.rmi.server.hostname。价值 属性应为外部可访问的主机名(或IP地址) 在中指定为主机部分时可以工作的内容 Naming.lookup就足够了


另外,请看一下远程方法调用的属性。

在执行此程序之前,我启动了rmiregisrty,但仍然得到错误…@user2293819此答案是正确的+1.如果您没有启动RMI注册表,您的服务器就会出现故障,您甚至不会走到这一步。这无关紧要对于需要客户端理解的值,“localhost”不是合适的设置。您需要将其设置为客户端可以访问的服务器主机的IP地址。
 ref= (RMISIntf)Naming.lookup("rmi://"+"localhost"+":"+8033+"/RMIServer");
 //MyRemoteObject ro = (MyRemoteObject) Naming.lookup("//" + "localhost" + ":" + port + "/" + name);
    //ref=Naming.rebind("rmi://localhost:8080/RmiServer",RMISIntf);