JAVA RMI例

3843 ワード

RMIはjava言語のRPCフレームワークであり、本稿では基礎例を以下に示す.
1、実現インタフェース:
public interface ICalc extends Remote {

    public int add(int param1, int param2) throws java.rmi.RemoteException;

}

2、サービス側はこのインタフェースを実現する:
public class CalcImpl extends UnicastRemoteObject implements ICalc {



    protected CalcImpl() throws RemoteException {

        super();

    }



    @Override

    public int add(int param1, int param2) {

        return param1 + param2;

    }



    public static void main(String[] args) {

        ICalc calc;

        try {

            //        connect confused  

            System.setProperty("java.rmi.server.hostname", "192.168.0.16");

            calc = new CalcImpl();

            LocateRegistry.createRegistry(1011);  

            java.rmi.Naming.rebind("rmi://192.168.0.16:1011/calc", calc);

        } catch (RemoteException e) {

            e.printStackTrace();

        } catch (MalformedURLException e) {

            e.printStackTrace();

        }

    }

}

3、テストクライアントを定義する:
public class Client {



    public static void main(String[] args) {

        ICalc calc;

        try {

            calc = (ICalc) Naming.lookup("rmi://192.168.0.16:1011/calc");

            System.out.println(calc.add(2,3));

        } catch (MalformedURLException | RemoteException | NotBoundException e) {

            e.printStackTrace();

        }

    }

}

4、テストの実行順序:
1、サーバー側コンパイルjavac CalcImpl
2、杭ファイルrmic CalcImplを生成し、ディレクトリの下にCalcImplを追加するStub;
3、rmiregisterを実行し、このプログラムを登録する.
4、新しいウィンドウでサービスjava CalcImplを起動する;
5、CalcImpl_をStubはクライアントにコピーし、java Clientを実行する.クライアントが予算結果を印刷