RMI是老牌子的玩意了,但这古老的东西玩起来还是要比较注意的。
传统的单机上的RMI部署就不讲了,这次要小结的是两台机器上RMI的部署要注意的地方
首先,服务端要象这样搞法:
try {
Calculator c = new CalculatorImpl();
Naming.rebind("rmi://128.1.238.32:1099/CalculatorService", c);
} catch (Exception e) {
System.out.println("Trouble: " + e);
}
在naming.rebind里,要指定服务端的地址,这里用rmi://IP地址:端口/服务的名称来指定
而在客户端,则要这样:
Calculator c = (Calculator)Naming.lookup("rmi://128.1.238.32:1099/CalculatorService");
而为了在两台机器上运行,服务端要设置策略文件policy.txt如下
grant {
permission java.security.AllPermission "", "";
};
然后在启动服务端的时候,这样启动
java -Djava.security.policy=policy.txt CalculatorServer
而客户端则不需要设置策略文件了,只需要这样启动就可以了
java -Djava.security.policy=policy.txt CalculatorClient
传统的单机上的RMI部署就不讲了,这次要小结的是两台机器上RMI的部署要注意的地方
首先,服务端要象这样搞法:
try {
Calculator c = new CalculatorImpl();
Naming.rebind("rmi://128.1.238.32:1099/CalculatorService", c);
} catch (Exception e) {
System.out.println("Trouble: " + e);
}
在naming.rebind里,要指定服务端的地址,这里用rmi://IP地址:端口/服务的名称来指定
而在客户端,则要这样:
Calculator c = (Calculator)Naming.lookup("rmi://128.1.238.32:1099/CalculatorService");
而为了在两台机器上运行,服务端要设置策略文件policy.txt如下
grant {
permission java.security.AllPermission "", "";
};
然后在启动服务端的时候,这样启动
java -Djava.security.policy=policy.txt CalculatorServer
而客户端则不需要设置策略文件了,只需要这样启动就可以了
java -Djava.security.policy=policy.txt CalculatorClient