美文网首页
RMI 2019-03-18

RMI 2019-03-18

作者: 十二找十三 | 来源:发表于2019-03-18 10:15 被阅读0次

步骤:
1.自定义 创建 java interface 类 并且继承 Remote (接口类命名随意)

    public interface RMethod extends Remote {
      String sayHello() throws RemoteException;
    }
  1. 创建实现类 RMethodImpl 实现自定义接口类里面的抽象方法 并且继承 UnicastRemoteObject

     public class RMethodImpl extends UnicastRemoteObject implements RMethod {
       private static final long serialVersionUID = 1L;
    
       protected RMethodImpl() throws RemoteException {
           super();
       }
    
        @Override
       public String sayHello() throws RemoteException {
           return "I am test.";
       }
    }
    

    注意:
    private static final long serialVersionUID = 1L 必须加
    构造函数也必须加 super();也加上

  2. 服务端测试代码

     public class Server {
       static int PORT = 9999;// 端口
       static String SERVER_IP = "172.16.0.89";// IP地址
       static String OBJECT_NAME = "test";// 绑定名字
    
       public static void main(String[] args) {
           try {
               System.setProperty("java.rmi.server.hostname", "172.16.0.89");// 绑定自己的IP
               LocateRegistry.createRegistry(PORT);
               RMethod rm = new RMethodImpl();
               String objAddr = "rmi://" + SERVER_IP + ":" + PORT + "/" + OBJECT_NAME;
               Context context = new InitialContext();
               context.rebind(objAddr, rm);
               System.out.println("Server is running...");
           } catch (Exception e) {
               System.out.println("Server startup failed!");
               e.printStackTrace();
           }
       }
     }
    

4.客户端测试代码

public class C {
    public static void main(String[] args) {
        RMethod rMethod;
        try {
            rMethod = (RMethod)Naming.lookup("//172.16.0.74:9999/test");
            System.out.println(rMethod.sayHello());
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (RemoteException e) {
            e.printStackTrace();
        } catch (NotBoundException e) {
            e.printStackTrace();
        }
    }
}

5.注意事项
- 测试端接口类的位置(类全名得一样)
- 安全组件问题 (先别加安全组件了 把RMI玩起来再说)
System.setSecurityManager(new SecurityManager());
rmi.policy

相关文章

  • RMI 2019-03-18

    步骤:1.自定义 创建 java interface 类 并且继承 Remote (接口类命名随意) 创建实现类...

  • RMI注意事项

    RMI服务接口 提供服务的RMI服务接口必须实现Remote接口 RMI服务启动 RMI服务端口 RMI需要两个端...

  • 【程序员笔记】RMI使用笔记

    本文章共分为三部分 RMI简介 RMI原理 RMI使用 RMI实战 下面详细介绍 一 RMI简介 远程方法调用(R...

  • Java RMI服务搭建

    什么是RMI? RMI:远程方法调用(Remote Method Invocation)。 如何建立RMI服务? ...

  • 分布式通信框架 - rmi

    1)什么是rmi 2)简单的实现rmi 3)rmi原理 4)手写rmi框架 进群:697699179可以获取Jav...

  • 2019-03-23

    2019-03-18

  • RMI、LDAP、CORBA与JNDI攻击

    1. RMI 1.1 JAVA RMI 1.1.1 基本概念 RMI(Remote Method Invocati...

  • 关于RPC

    1.RMI RMI(Remote Method Invocation,远程方法调用),RMI使用Java语言接口定...

  • spring05-RMI---G05

    spring05-RMI 一. 远程方法调用 RMI Java RMI 指的是远程方法调用 (Remote Met...

  • 分布式架构基础:Java RMI详解

    RMI简介 ​ Java RMI,即 远程方法调用(Remote Method Invocation),...

网友评论

      本文标题:RMI 2019-03-18

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