Java プログラムメモ


トップ

RMI サーバの作り方

Java の RMI テクノロジは非常に簡単にサーバを構築する事が可能であり、Socket を意識する必要もありません。 また、ローカルクラスを使用してるのと変わりなくサーバへのアクセスが可能です。

サーバを起動する為には、JAVA_HOME/jre/lib/security/java.policy に
permission java.security.AllPermission;
を追加しなければいけません。

サーバ側 Interface

import java.rmi.*; public interface RemoteServer extends Remote { public boolean isAlive() throws RemoteException; }

サーバ側 実装クラス

import java.net.*; import java.rmi.*; import java.rmi.registry.*; import java.rmi.server.*; public class RemoteServerImpl extends UnicastRemoteObject implements RemoteServer { public RemoteServerImpl(String name, int port) throws RemoteException { System.setSecurityManager(new RMISecurityManager()); LocateRegistry.createRegistry(port); try { Naming.rebind(new StringBuffer(64).append("//:").append(port) .append('/').append(name).toString(), this); } catch (MalformedURLException e) { throw new RemoteException(e.getMessage(), e); } } public boolean isAlive() throws RemoteException { return true; } public static void main(String[] args) { try { new RemoteServerImpl("サービス名", port 番号); } catch (RemoteException e) { e.printStackTrace(); } } }

クライアントクラス

import java.rmi.*; public class RemoteServerClient { public static void main(String[] args) { try { RemoteServer server = (RemoteServer)Naming .lookup("rmi://サーバアドレス:ポート番号/サービス名"); System.out.println(server.isAlive()); } catch (Exception e) { e.printStackTrace(); } } }

SEO [PR] おまとめローン Windows7 冷え性対策 動画 掲示板 レンタルサーバー ライブチャット SEO