2009年1月4日日曜日

Java RMI-JRMPのHelloWorld

SCJDでRMIを使うのでHelloWorldのサンプルを書いてみました。
RMIとはRemoteMethodInvocationの略でJavaを使って他のコンピュータと通信を行うAPIです。
以下のHelloWorldを使えば通信ができるでしょう
  • HelloWorld.java

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

/**
* リモートインターフェイス
*/
interface HelloWorld extends Remote{
String sayHelloWorld() throws RemoteException;
}

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

/**
* リモートオブジェクト
*/
public class HelloWorldObj extends UnicastRemoteObject implements HelloWorld{

private static final long serialVersionUID = 1L;

public HelloWorldObj() throws RemoteException{
super();
}

public String sayHelloWorld(){
return "Hello World";
}

}


  • HelloWorldServer.java
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

/**
* サーバ
*/
public class HelloWorldServer {

public static void main(String args[]){
try {
Registry reg = LocateRegistry.createRegistry(1099);
HelloWorld obj = new HelloWorldObj();
reg.rebind("Hello", obj);
} catch (Exception e) {
e.printStackTrace();
}
}

}

  • HelloWorldClient.java

import java.rmi.Naming;

/**
* クライアント
*/
public class HelloWorldClient {

public static void main(String args[]){
HelloWorld obj = null;
try{
obj = (HelloWorld)Naming.lookup("rmi://localhost:1099/Hello");
System.out.println(obj.sayHelloWorld());
}catch(Exception e){
e.printStackTrace();
}
}
}


これを動かすのもよいけどちゃんとやりたい人はGetting Started Using JavaTM RMIを見たほうがいいかもしれません。

0 件のコメント: