今さらRMI

今時、直に RMI 通信を使うアーキテクチャなんて組むのだろうか?

サーバ側は、こんなふうに、、、

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


public interface RmiService extends Remote{
   public String testMonitor(int num,String msg)throws RemoteException;
}
-----------
import java.rmi.Naming;
import java.rmi.RMISecurityManager;


/**
 * at Windows
 *     start %JAVA_HOME%\bin\rmiregistry
 *     実行後に起動
 * at UNIX
 *     %JAVA_HOME%/bin/rmiregistry &
 *     実行後に起動
 *  いずれも rmiregistry 起動時クラスパスに注意してクラスロードできるように 
 */

   System.setProperty("java.security.policy","java.policy");

   System.setSecurityManager(new RMISecurityManager());

   try{
   RmiService rmiservice = new RmiServiceImpl();

   Naming.bind("TestRmi",rmiservice);

   System.out.println("TestRmiSever ready!");

   }catch(Exception e){
      e.printStackTrace();
   }finally{

   }
-------------------
java.policy ファイルは、とりあえず、

grant {
    permission java.security.AllPermission;
};


クライアント側は、、、

import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import arms.service.rmi.RmiService;>

   :
      try{
      System.setProperty("java.security.policy","java.policy");

      System.setSecurityManager(new RMISecurityManager());

      RmiService rmiservice = (RmiService)Naming.lookup("rmi://xxx.xx.xxx.xxx/TestRmi");

      String status = rmiservice.testMonitor(12,"Hello");

      }catch(Exception e){
          :
      }