服务器端:
1.创建一个javabean对象,需要实现Serializable接口。(如果只是传输字符串可以不用创建javabean对象)
import java.io.Serializable; public class User implements Serializable { private static final long serialVersionUID = 1L; private String name; private int age; …… }2.创建一个接口
import com.my.po.User; public interface IBaseService { /** * 简单Hello Word * @param name * @return */ public String getHelloWord(String name); /** * 获得User对象 * @param user * @return */ public String getUser(User user); }3.实现类
import com.my.po.User; import com.my.service.IBaseService; public class BaseServiceImpl implements IBaseService { public String getHelloWord(String name) { return "欢迎"+name+"的到来!!!"; } public String getUser(User user) { return "名字:"+user.getName()+"--->"+"年龄:"+user.getAge(); } }4.创建一个spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="baseRmiService" class="com.my.service.impl.BaseServiceImpl" /> <bean id="baseServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter"> <!-- 调用Service --> <property name="service" ref="baseRmiService" /> <!-- value值是提供给客户端调用 --> <property name="serviceName" value="baseService" /> <!-- service接口 --> <property name="serviceInterface" value="com.my.service.IBaseService" /> <!-- 注册端口 --> <property name="registryPort" value="1200" /> </bean> </beans>5.main方法
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.my.service.IBaseService; public class BaseServiceTest { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); IBaseService ibs = (IBaseService) context.getBean("baseRmiService"); System.out.println("baseRmiService启动..."); } }
将User.java和IBaseService.java打成jar包,放到客户端里面。
客户端:
1.创建一个spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="baseService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <!-- baseService是调用服务端serviceName的value,1200是服务端注册的端口 --> <property name="serviceUrl" value="rmi://localhost:1200/baseService" /> <!-- service接口 --> <property name="serviceInterface" value="com.my.service.IBaseService" /> </bean> </beans>2.main方法
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.my.po.User; public class ClientTest { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); IBaseService ibs = (IBaseService) context.getBean("baseService"); System.out.println(ibs.getHelloWord("hao")); User user = new User(); user.setName("chenghao"); user.setAge(24); System.out.println(ibs.getUser(user)); } }
现在运行ClientTest类就会在控制台打印出:
欢迎hao的到来!!! 名字:chenghao--->年龄:24
来自:开源中国
作者:chenghao
链接:http://my.oschina.net/hao0610/blog/131686