传统的创建RMI服务,会涉及如下几个步骤:
1、编写远程服务接口,该接口必须继承 java.rmi.Remote
接口,方法必须抛出 java.rmi.RemoteException 异常;
2、编写远程接口实现类,该实现类必须继承
java.rmi.server.UnicastRemoteObject 类;
3、运行RMI编译器(rmic),创建客户端 stub 类和服务端
skeleton 类;
4、启动一个RMI注册表,以便驻留这些服务;
5、在RMI注册表中注册服务;
1、服务接口
2、服务实现类
3、Spring文件配置
4、启动服务
说明:如果使用传统的RMI来发布服务,在服务实现类中所有方法都得抛出
java.rmi.RemoteException 异常。但如果使用Spring的
org.springframework.remoting.rmi.RmiServiceExporter 将该类转化为 RMI 服务,那么实现将简单的多。
RmiServiceExporter 可以将任何一个 Spring 管理的Bean发布为一个 RMI
服务,默认情况下,RmiServiceExporter会尝试将一个RMI注册表绑定到本机的1099端口。如果在这个端口没有发现RMI注册表,RmiServiceExporter将重新启动一个注册表。如果希望将某个
RMI 注册表绑定到不同的端口或主机,可以通过 registryPort和registryHost属性指定。
三、装配RMI服务
1、接口同上
2、配置Spring
3、客户端调用
说明:Spring的
org.springframework.remoting.rmi.RmiProxyFactoryBean 是一个工厂Bean,
该Bean可以为RMI服务创建代理。