Java RMI 最简单实例

IHello.java

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface IHello extends Remote{
    public void say() throws RemoteException;
}

Hello.java

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class Hello extends UnicastRemoteObject implements IHello{

    private static final long serialVersionUID = 1L;

    protected Hello() throws RemoteException {
        super();
    }

    @Override
    public void say() throws RemoteException {
        System.out.println("Hello World");
    }
}

HelloServer.java

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.net.MalformedURLException;

public class HelloServer {

    public static void main(String[] args) {
        try {
            IHello h = new Hello(); 
            LocateRegistry.createRegistry(8888);
            Naming.rebind("rmi://localhost:8888/h", h);
        } catch (RemoteException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }

}

HelloClient.java

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

public class HelloClient {

    public static void main(String[] args) {
            try {
                IHello h = (IHello) Naming.lookup("rmi://localhost:8888/h");
                h.say();
            } catch (MalformedURLException | RemoteException | NotBoundException e) {
                e.printStackTrace();
            }

    }

}

先运行HelloServer类,再运行HelloClient类,即可在Console打印出字符串"Hello World"。

 

附:其实任何技术的HelloWorld实例都挺有意思的,因为十分地简洁。

 

posted @ 2014-01-05 14:06  XIAOSHUA  阅读(235)  评论(0编辑  收藏  举报