JAVA RMI例
3843 ワード
RMIはjava言語のRPCフレームワークであり、本稿では基礎例を以下に示す.
1、実現インタフェース:
2、サービス側はこのインタフェースを実現する:
3、テストクライアントを定義する:
4、テストの実行順序:
1、サーバー側コンパイルjavac CalcImpl
2、杭ファイルrmic CalcImplを生成し、ディレクトリの下にCalcImplを追加するStub;
3、rmiregisterを実行し、このプログラムを登録する.
4、新しいウィンドウでサービスjava CalcImplを起動する;
5、CalcImpl_をStubはクライアントにコピーし、java Clientを実行する.クライアントが予算結果を印刷
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を実行する.クライアントが予算結果を印刷