zoukankan      html  css  js  c++  java
  • Java RMI 简单示例

    一、创建远程服务

    1、创建 Remote 接口,MyRemote.java

    import java.rmi.*;
    
    public interface MyRemote extends Remote{
    
        public String sayHello() throws RemoteException;
    }

    2、实现 Remote,MyRemoteImpl.java

    import java.rmi.*;
    import java.rmi.server.*;
    
    public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{
    
        public String sayHello(){
            return "Server says,'Hey'";
        }
        public MyRemoteImpl() throws RemoteException{}
        
        public static void main(String[] args){
            try{
                MyRemote service = new MyRemoteImpl();
                Naming.rebind("rmi://localhost:1099/Hello",service);
            }catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
    }

    3、编译。在以上 java 文件所在目录,按住 shift 键,右键,选择「在此处打开命令窗口」,执行

    javac *.java

    4、用 rmic 产生 stub。

    rmic MyRemoteImpl

    5、启动 RMI registry。

    rmiregistry

    6、启动远程服务。另外打开一个命令窗口,执行

    java MyRemoteImpl

    二、客户端调用远程方法

    1、把第一步的 MyRemote.class 和 MyRemoteImpl_Stub.class 拷贝到客户端文件所在目录。

    2、编写客户端代码 MyRemoteClient.java。

    import java.rmi.*;
    
    public class MyRemoteClient
    {
        public static void main(String[] args)
        {
            new MyRemoteClient().go();
        }
        
        public void go()
        {
            try
            {
                MyRemote service=(MyRemote)Naming.lookup("rmi://localhost:1099/Hello");
                String s=service.sayHello();
                System.out.println(s);
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
    }

    3、编译

    javac *.java

    4、运行客户端

    java MyRemoteClient

    参考资料:

    1. Kathy Sierra. Bert Bates. 《Head First Java》中文版

  • 相关阅读:
    linux命令(14):ifup/ifdown/ip addr命令
    linux命令(13):kill/killall命令
    linux命令(12):ping命令
    linux命令(11):df命令
    linux命令(9):route命令
    npm安装node-sass报msbuild相关错误的解决办法
    'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    redis发布与订阅的实现
    设计模式-工厂模式
    设计模式的介绍
  • 原文地址:https://www.cnblogs.com/NaughtyBaby/p/4784505.html
Copyright © 2011-2022 走看看