import java.rmi.*;interface HelloWorld extends Remote { String sayHelloWorld() throws RemoteException; }
import java.rmi.*; import java.rmi.server.*; public class HelloWorldObj extends UnicastRemoteObject implements HelloWorld { public static void main(String args[]) { if (System.getSecurityManager() == null) { // セキュリティマネージャーを設定します System.setSecurityManager(new RMISecurityManager()); } try { // サーバー側のリモートオブジェクトを生成します HelloWorldObj obj = new HelloWorldObj(); // リモートオブジェクトに新しい名前を関連付けます Naming.rebind("MyObject", obj); } catch (Exception e) { e.printStackTrace(); } } // コンストラクタ public HelloWorldObj() throws RemoteException { } // "Hello World"と返すリモートメソッド public String sayHelloWorld() throws RemoteException { return "Hello World"; } }
import java.rmi.*; public class HelloWorldClient { public static void main(String args[]) { HelloWorld obj = null; try { // セキュリティマネージャーを設定します System.setSecurityManager(new RMISecurityManager()); // リモートオブジェクトの参照(スタブ)を取得します obj = (HelloWorld)Naming.lookup("rmi://localhost/MyObject"); // リモートメソッドを呼び出してその戻り値を画面に表示します System.out.println(obj.sayHelloWorld()); } catch(Exception e) { e.printStackTrace(); } } }
grant { permission java.security.AllPermission;};
C:\JavaHello\RMI>