我正在尝试从托管在不同网络上的服务器获取远程对象。我能够在同一台机器和同一网络上连接,但是当我尝试从不同的网络获取它时,我得到:
连接拒绝主机:192.168.1.131;嵌套异常是:java.net.ConnectException:连接超时:连接
查找功能似乎在错误的网络中搜索。我尝试使用 System.setProperty 但它不起作用。这里的代码:
服务器
public class Main {
public static void main(String[] args) {
try{
System.out.println("Init server...\n");
TestInterface test = new TestImplement();
System.setProperty("java.rmi.server.hostname", "95.247.x.x");
System.out.println("Reg RMI...\n");
Registry rmiRegistry = LocateRegistry.createRegistry(5555);
rmiRegistry.rebind("Test" , test);
System.out.println("Reg completed!\n");
}catch(Exception e){
e.printStackTrace();
}
}
}
客户
...
registryRMI = LocateRegistry.getRegistry("95.247.x.x",5555);
TestInterface testClient = (TestInterface)registryRMI.lookup("Test");
...
我还需要java.rmi.server.hostname
在客户端 jar 中设置吗?