运行java rmi服务器

时间:2015-04-26 16:20:17

标签: java server rmi

我正在创建一个使用RMI技术的项目,它正在按我的意愿运行,但现在我想将我的RMI类上传到服务器,我该怎么做以及该怎么做?

我试着这样做:

public static void main (String [] arg) {
    try {
        LocateRegistry.createRegistry(30);
        Registry reg = LocateRegistry.getRegistry("127.0.0.1",30);
        ImbCal  c = new ImbCal();

        reg.rebind("MSA", c);
        reg.rebind("Work", c);

        System.out.println("Server is ready ....");

        System.in.read();


    }catch(Exception ex){
      ex.printStackTrace();
      System.out.print(ex.getMessage());
    }
}

我知道应该:

  1. 更改localhost地址。
  2. 为服务器创建部署jar,如ear或war。
  3. 我已经创建了一个接口和一个客户端类,并在本地测试了我的项目,它运行良好。

1 个答案:

答案 0 :(得分:0)

我尝试了很多,直到我解决了它,我只需要在服务器类中创建注册表,而在客户端类中我应该通过服务器类的地址获取注册表

服务器类:

try {
    /*here create the registry*/
    Registry reg = LocateRegistry.createRegistry(30);
    ImbCal  c = new ImbCal();
    reg.rebind("MSA", c);
    reg.rebind("Work", c);
    System.out.println("Server is ready ....");
    System.in.read();
}catch(Exception ex){
  ex.printStackTrace();
  System.out.print(ex.getMessage());
}

客户类:

        try {               
            Registry myReg = LocateRegistry.getRegistry("192.168.1.5",30);      
            System.out.println("running...");
            CalInterface c= (CalInterface)myReg.lookup("MSA");      
             WorkInterface w= (WorkInterface)myReg.lookup("Work");  
        } catch (Exception e) {
            e.printStackTrace();

        }

}