首页 > 代码库 > spring整合RMI - Java远程方法调用
spring整合RMI - Java远程方法调用
一. 开篇语
在上一篇RMI - Java远程方法调用博文中使用的是JDK原生类进行远程方法调用, 本篇文章使用spring提供的API对RMI进行整合, 希望能给您带来帮助.
二. 核心API
1. 客户端: 客户端的核心是RmiProxyFactoryBean, 它包含两个属性serviceUrl(远程调用地址), serviceInterface(远程调用接口)
2. 服务端: RmiServiceExporter把spring管理的Bean输出成一个RMI服务, 通过把Bean包装在一个适配器类中工作, 适配器类被绑定到RMI注册表中, 并且将请求代理给服务类.
三. 环境准备
1. 运行环境:
spring2.5, JDK6.0
2. 所需jar包: spring.jar, commons-logging.jar
3. 代码结构图:
四. 代码测试
1. SumService: 加法运算接口
public interface SumService { public int getAdd(int a, int b); }
2. SumServiceImpl: 加法运算实现
public class SumServiceimpl implements SumService { public int getAdd(int a, int b) { return a + b; } }
3. 服务端Server
public class Server { public static void main(String[] args) { // init spring context ApplicationContext context = new ClassPathXmlApplicationContext("application_context_server.xml"); System.out.println("server start!"); } }
4. 客户端Client
public class Client { private static final Integer NUM_1 = 1; private static final Integer NUM_2 = 2; public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("application_context_client.xml"); SumService sumService = (SumService) ctx.getBean("rmiProxyFactoryBean", SumService.class); System.out.println("client sum: " + NUM_1 + " + " + NUM_2 + " = " + sumService.getAdd(NUM_1, NUM_2)); } }
5. 服务端配置application_context_server.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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- server --> <bean id="sumServiceImpl" class="com.service.impl.SumServiceimpl" scope="prototype" /> <!-- RMI service --> <bean id="rmiServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter"> <property name="service" ref="sumServiceImpl" /> <property name="serviceInterface" value=http://www.mamicode.com/"com.service.SumService" />>
6. 客户端配置application_context_client.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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- client --> <bean id="rmiProxyFactoryBean" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <property name="serviceUrl" value=http://www.mamicode.com/"rmi://127.0.0.1:8888/sumRmi"/> >
7. 源码下载地址: http://download.csdn.net/detail/zdp072/7423185
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。