RMI入门小结

最近做了一个RMI的例子。例子很简单,只有四个类(HelloService,HelloServiceImpl,SimpleServer,SimpleClient)具体实现不写了,网上太多了。只需要注意RMI规范要求远程对象和实现的远程接口满足两个条件:
1、 直接或间接继承java.rmi.Remote接口;
2、 接口中所有的方法声明抛出java.rmi.RemoteException或它的父类异常。
RMI运行:
1、 rmic HelloServiceImpl(服务的实现类用来生成存根)
2、 找到D:\Program Files\jdk1.5\bin下的rmiregistry.exe启动。(用来注册RMI)
3、 java SimpleServer(启动服务,注册RMI)
4、 java SimpleClient(客户端调用已注册的RMI)
在运行RMI时要特别注意两个问题:
1、 classpath问题:老是找不到类,无法编译。(如:java,rmic命令)
环境变量设置:
CLASSPATH=.;D:\Program Files\jdk1.5\bin; D:\Program Files\jdk1.5\lib
2、 存根问题:无法生成存根和总是找不到HelloServiceImpl_Stub
存根的生成要用rmic来生成。
生成的存根老是找不到:要用java.exe -Djava.rmi.server.codebase。

在我的例子中编译命令如下:
1、E:\workspace\test>rmic com.rmi.hello.HelloServiceImpl
2、启动rmiregistry.exe
3、E:\workspace\test>java.exe -Djava.rmi.server.codebase=file:/E:\workspace\test/
com.rmi.hello.SimpleServer(注意:test/后有一个空格)
4、另起一个DOS窗口,E:\workspace\test>java com.rmi.hello.SimpleClient
总共应该是三个DOS窗口。

你可能感兴趣的:(java,dos)