Java RMI 简单示例

来源:互联网 发布:alphago原理讲解 知乎 编辑:程序博客网 时间:2024/05/22 10:42
一、创建远程服务

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》中文版

0 0
原创粉丝点击