[英]Java RMI connection over internet
我正在嘗試從不同網絡上托管的服務器獲取遠程對象。 我可以在同一台機器和同一網絡上進行連接,但是當我嘗試從不同的網絡獲得它時,我得到:
連接拒絕主機:192.168.1.131; 嵌套的異常是:java.net.ConnectException:連接超時:connect
查找功能似乎正在搜索錯誤的網絡。 我嘗試使用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");
...
我是否還需要在客戶端jar中設置java.rmi.server.hostname
?
TestInterface test = new TestImplement();
System.setProperty("java.rmi.server.hostname", "95.247.x.x");
在導出任何遠程對象之前,需要設置java.rmi.server.hostname
。 之后再做為時已晚。
System.setProperty("java.rmi.server.hostname", "95.247.x.x");
TestInterface test = new TestImplement();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.