我们需要将接口的方法发布为RMI服务
接口的定义如下
public interface DemoService{
void saveDemo(Demo demo);
Demo getDemo(String name);
}
接口的实现类如下
public class DemoServiceImpl implements DemoService{
void saveDemo(Demo demo){
}
Demo getDemo(String name){
}
}
使用spring的RmiServiceExporter将该类转变为RMI服务,RmiServiceExporter可以将任意一个spring管理的Bean发布为RMI服务,它将Bean包装在一个适配器类中,然后适配器类被绑定到RMI注册表中,并且将调用者的请求代理给服务类。
使用RmiServiceExporter将DemoServiceImpl发布为RMI服务的最简单方式是,在spring中使用如下xml进行配置
<bean class="org.springframework.remoting.rmi.RmiServiceExporter"
p:service-ref="demoService" //demoService是指一个已经声明的bean
p:serviceName="DemoService"
p:serviceInterface="com.DemoService" />
service-ref属性表明RmiServiceExporter要将DemoServiceImpl的bean发布为一个服务
serviceName属性表明这个服务的名字
serviceInterface属性表明这个服务实现的接口
默认情况下,RmiServiceExporter会将RMI注册表绑定到本地的1099端口