RMI J 2 EE I 2006 02 25 Slides: 46 Download presentation RMI J 2 EE I 補講 / 2006 -02 -25 参考URL n Java. TM Remote Method Invocation (RMI) n n http: //java. sun. com/j 2 se/1. 5. 0/ja/docs/ja/g uide/rmi/index. html Sun Microsystems による RMI の解説です。 分散オブジェクト技術 n n n CORBA DCOM RPC ? Java RMI Peer to Peer (P 2 P) ? などなど Remoteインタフェース (1) import java. rmi. Remote; import java. rmi. Remote. Exception; public interface Hello extends Remote { public String say. Hello() throws Remote. Exception; } サーバ側のプログラム (1) クラスの定義 public class Server implements Hello {. . . } サーバ側のプログラム (3) メソッド public String say. Hello() { return "Hello world!"; } サーバ側のプログラム (6) mainメソッド (1) // インスタンスを生成 Server obj = new Server(); // スタブを取得 Hello stub = (Hello) Unicast. Remote. Object. export. Object(obj, 0); サーバ側のプログラム (7) mainメソッド (2) // rmiregistry にスタブを登録する Registry registry = Locate. Registry. get. Registry(); registry. bind("Hello", stub); クライアント側のプログラム (1) // rmiregistry から目的のスタブを探す Registry registry = Locate. Registry. get. Registry(host); Hello stub = (Hello) registry. lookup("Hello"); プログラムのコンパイル n n n javac Hello. javac Server. javac Client. java サーバの起動 n java Server サーバ側のプログラム mainメソッドの冒頭に // 許可されてない操作を行わないために if (System. get. Security. Manager() == null) { System. set. Security. Manager( new RMISecurity. Manager() ); } サーバの起動 (1) コマンドライン java -Djava. rmi. server. codebase= file: ///C: Homermi -Djava. security. policy=policy. txt Server localhost サーバの起動 (6) policy. txt の内容 grant { // Allow everything for now permission java. security. All. Permission; }; n すべての人にすべてのアクセス権を与える クライアントの起動 n java -Djava. security. policy=policy. txt Client localhost