簡體   English   中英

互聯網上的Java RMI連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM