服务端:
1首先建立一个业务实体com.spring.openv.PersonVo
package com.spring.openv;
import java.io.Serializable;
public class PersonVo implements Serializable{
private String firstName;
private String lastName;
public void setFristName(String firstName){
this.firstName = firstName;
}
public String getFristName(){
return this.firstName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
public String getLastName(){
return this.lastName;
}
}
2其次新建一个业务实体com.spring.openv. LogPersonClient及它提供的接口com.spring.openv. ILogPerson
package com.spring.openv;
public interface ILogPerson {
public String getPerson(PersonVo personVo);
}
package com.spring.openv;
public class LogPerson implements ILogPerson {
public String getPerson(PersonVo personVo) {
return personVo.getFristName() + "." + personVo.getLastName();
}
}
3,最后也是最关键的部分通过服务端spring来管理Rmi。
<beans>
<bean id="logPerson" class="com.spring.openv.LogPerson"></bean>
<!—上面配置业务实体-->
<!—下面配置rmi服务端的配置-->
<bean id="logPersonService"
class="org.springframework.remoting.rmi.RmiServiceExporter">
<!—rmi需要引用类org.springframework.remoting.rmi.RmiServiceExporter -->
<!— 服务配置:此配置说明了要发布那个实体为rmi实体(即那个实体要提供给客户端调用) -->
<property name="service">
<ref bean="logPerson" />
</property>
<!— 服务端名称:说明客户端以通过那个服务名字来获取服务 -->
<property name="serviceName">
<value>LogPerson</value>
</property>
<!— 服务端接口:即提供给客户端调用那个实体的接口-->
<property name="serviceInterface">
<value>com.spring.openv.ILogPerson</value>
</property>
<!— 服务端口 -->
<property name="registryPort">
<value>1200</value>
</property>
</bean>
</beans>
客户端:
1首先建立测试远程服务的测试类com.spring.openv.LogPersonClient
public class LogPersonClient {
protected static final Log log = LogFactory.getLog(LogPersonClient.class);
public static void main(String[] args) {
ClassPathResource resource = new ClassPathResource(
"applicationContext.xml");
BeanFactory beanFactory = new XmlBeanFactory(resource);
PersonVo personVo = new PersonVo();
personVo.setFristName("Wang");
personVo.setLastName("XiaoGuang");
ILogPerson iLogPerson = (ILogPerson) beanFactory.getBean("logPerson");
log.info(iLogPerson.getPerson(personVo));
}
}
2其次通过客户端spring的配置文件获取rmi远程服务
<beans>
<!— 获取rmi服务工程代理类:通过这个代理类spring可以获取rmi远程对象 -->
<bean id="logPerson"
class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<!— 获取rmi服务端url -->
<property name="serviceurl">
<value>rmi://localhost:1200/LogPerson</value>
</property>
<!—serviceInterface即获取服务端对象后要转化的服务端接口 -->
<property name="serviceInterface">
<ref bean="com.spring.openv.ILotPerson" />
</property>
</bean>
</beans>