一、创建远程服务
1、创建 Remote 接口,MyRemote.java
import java.rmi.*; public interface MyRemote extends Remote{ public String sayHello() throws RemoteException; }
2、实现 Remote,MyRemoteImpl.java
import java.rmi.*; import java.rmi.server.*; public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{ public String sayHello(){ return "Server says,'Hey'"; } public MyRemoteImpl() throws RemoteException{} public static void main(String[] args){ try{ MyRemote service = new MyRemoteImpl(); Naming.rebind("rmi://localhost:1099/Hello",service); }catch(Exception ex) { ex.printStackTrace(); } } }
3、编译。在以上 java 文件所在目录,按住 shift 键,右键,选择「在此处打开命令窗口」,执行
javac *.java
4、用 rmic 产生 stub。
rmic MyRemoteImpl
5、启动 RMI registry。
rmiregistry
6、启动远程服务。另外打开一个命令窗口,执行
java MyRemoteImpl
二、客户端调用远程方法
1、把第一步的 MyRemote.class 和 MyRemoteImpl_Stub.class 拷贝到客户端文件所在目录。
2、编写客户端代码 MyRemoteClient.java。
import java.rmi.*; public class MyRemoteClient { public static void main(String[] args) { new MyRemoteClient().go(); } public void go() { try { MyRemote service=(MyRemote)Naming.lookup("rmi://localhost:1099/Hello"); String s=service.sayHello(); System.out.println(s); } catch(Exception ex) { ex.printStackTrace(); } } }
3、编译
javac *.java
4、运行客户端
java MyRemoteClient
参考资料:
1. Kathy Sierra. Bert Bates. 《Head First Java》中文版