被调用端:系统注册调用信息
private static Registry reg;
public static void start()
{
try
{//注册端口信息
reg = LocateRegistry.createRegistry(Integer.parseInt((String)ConfigUtil.getValue("rmi_port")));
// 可以用不同名字注册不同的实例 被调用的方法实现
SystemUsabilityRmiImpl rmi = new SystemUsabilityRmiImpl();
// Naming.rebind("follo_rmi", rmi); 注册名称
reg.bind((String)ConfigUtil.getValue("rmi_name"), rmi);
}
catch (Exception e)
{
e.printStackTrace();
}
}
调用端:
try {
//注册端口,ip,调用名
String ip = RmiConfigUtil.getValue("rmi_ip");
String port = RmiConfigUtil.getValue("rmi_port");
String rmi_name = RmiConfigUtil.getValue("rmi_name");
SystemUsabilityRmi s = (SystemUsabilityRmi) Naming.lookup("rmi://"+ip+":"+port+"/"+rmi_name);
isSuccess=s.updateSystemUsability(serviceId,level);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NotBoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
附:调用端接口SystemUsabilityRmi只需声明,无需实现。 此接口中的方法updateSystemUsability必须与被调用端注册的SystemUsabilityRmiImpl 实现中方法同名!
public interface SystemUsabilityRmi extends Remote{
/**
*
* @param id
* @return
* @throws RemoteException
*/
public boolean updateSystemUsability(String id,int level) throws RemoteException;
}