今時、直に 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){
:
}