RMI使用

作者: 背麻袋的袋鼠 | 来源:发表于2018-04-27 10:26 被阅读18次
    注意事项

    1.服务接口要继承java.rmi.Remote接口,声明方法必须 throws
    java.rmi.RemoteException,否则会抛异常
    2.接口实现类继承UnicastRemoteObject类,构造方法需要throws RemoteException,同时将实现类声明为public
    3.实现类最好实现Serializable接口,实现方法中throws java.rmi.RemoteException

    代码收藏
    ======================interface============================
    public interface RomTest extends Remote {
    String RMI_NAME = "rmi.test.service";
    public void say() throws RemoteException;
    }
    ==========================Impl=============================
     public class RomTestImpl extends UnicastRemoteObject implements RomTest, Serializable {
    protected RomTestImpl() throws RemoteException {
        super();
    }
    @Override
    public void say(){
        System.out.println("hahha");
    }
    }
    ==========================server============================
    public class TestServer {
    public static void main(String[] args) {
        try {
            RomTest r = new RomTestImpl();
            //注册远程服务对象
            Registry registry = LocateRegistry.createRegistry(10002);
            try {
                try {
                    Naming.bind("rmi://127.0.0.1:10002/" + RomTest.RMI_NAME, r);
                } catch (AlreadyBoundException e) {
                    e.printStackTrace();
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
    }
    ==========================client===========================
    public class TestClient {
    public static void main(String[] args){
        try {
            RomTest ms = (RomTest) Naming.lookup("rmi://12.128.11.100:10002/"+RomTest.RMI_NAME);
            ms.say();
        } catch (NotBoundException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
      }
    

    相关文章

      网友评论

          本文标题:RMI使用

          本文链接:https://www.haomeiwen.com/subject/vnqblftx.html