http://blog.csdn.net/arkblue/article/details/6237380
Spring整合RMI的原理
客户端的核心是RmiProxyFactoryBean,包含serviceURL属性和serviceInterface属性。
通过JRMP访问服务。JRMP JRMP:java remote method protocol,Java特有的,基于流的协议。
服务端暴露远程服务
RmiServiceExporter把任何Spring管理的Bean输出成一个RMI服务。通过把Bean包装在一个适配器类中工作。适配器类被绑定到RMI注册表中,并且将请求代理给服务类。
服务端程序:
1 IHelloWorld.java POJO的接口
- public interface IHelloWorld {
- public String helloWorld();
- public String sayHelloToSomeBody(String someBodyName);
- }
2 HelloWorld.java POJO的实现
- public class HelloWorld implements IHelloWorld {
- @Override
- public String helloWorld() {
- return "Hello World!";
- }
- @Override
- public String sayHelloToSomeBody(String someBodyName) {
- return "Hello World!" + someBodyName;
- }
- }
3 spring配置文件rmi_server_context.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:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
- <bean id="helloWorld" class="springapp.rmi.rmi.HelloWorld" />
- <bean id="serviceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
- <property name="service" ref="helloWorld" />
- <!-- 定义服务名 -->
- <property name="serviceName" value="hello" />
- <property name="serviceInterface" value="springapp.rmi.rmi.IHelloWorld" />
- <property name="registryPort" value="8088" />
- </bean>
- </beans>
4 服务端启动RMI的代码HelloHost.java
- public class HelloHost {
- public static void main(String[] args) {
- ApplicationContext ctx = new ClassPathXmlApplicationContext(
- "rmi_server_context.xml");
- System.out.println("RMI服务伴随Spring的启动而启动了.....");
- }
- }
客户端
1 配置文件rmi_client_context.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"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
- <bean id="helloWorld" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
- <property name="serviceUrl" value="rmi://10.87.40.141:8088/hello" />
- <property name="serviceInterface" value="springapp.rmi.rmi.IHelloWorld" />
- </bean>
- </beans>
2 客户端代码 HelloClient.java
- public class HelloClient {
- public static void main(String[] args) throws RemoteException {
- ApplicationContext ctx = new ClassPathXmlApplicationContext(
- "rmi_client_context.xml");
- IHelloWorld hs = (IHelloWorld) ctx.getBean("helloWorld");
- System.out.println(hs.helloWorld());
- System.out.println(hs.sayHelloToSomeBody("Lavasoft"));
- }
- }
相关推荐
在这个“spring+rmi非本地实现”的项目中,我们有两个主要部分:客户端(client)和服务端(rmiserver)。让我们深入探讨一下这两个部分以及它们如何协同工作。 1. **服务端(rmiserver)**: - **创建RMI接口**:...
Java Spring 框架与 Remote Method Invocation (RMI) 的结合使用是构建分布式应用程序的一种常见方式。本项目提供了一个入门级的源代码示例,帮助开发者理解如何在 Spring 环境下集成 RMI 技术。以下是关于这两个...
Java Spring与RMI(Remote Method Invocation)的整合是企业级应用中常见的远程服务交互方式。Spring框架提供了对RMI的支持,使得开发者能够方便地在分布式环境中进行服务的调用。这个压缩包文件“Spring+RMI”很...
在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而RMI(Remote Method Invocation)则是Java提供的一种远程方法调用机制,用于构建分布式应用程序。将Spring与RMI结合,可以实现非本地部署的服务,...
《构建基于Spring+Hibernate+MySQL+RMI+Swing的登录Demo详解》 在软件开发领域,集成多种技术来构建高效、稳定的应用是常见的实践。本项目“基于Spring+Hibernate+MySQL+RMI+Swing的登录Demo”就充分展示了这种技术...
1.4.8 RMI(远程方法调用) 1.4.9 JMS(Java消息服务) 1.4.10 JMX(Java分布式管理) 1.4.11 JACC(Java容器授权合同) 1.4.12 JCA(Java连接器体系) 1.5 小结 第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式...
具体到这个压缩包“springRMI”,我们可以推测它可能包含了以下几个部分: 1. **配置文件**:如`applicationContext.xml`,其中定义了Spring容器中的Bean,可能包括RMI服务的接口和实现。 2. **远程接口**:`.java`...
【标题】"CXF+RMI+HESSIAN" 是一个关于使用Apache CXF实现Web服务,结合RMI(远程方法调用)和Hessian协议的技术组合。这种组合常用于分布式系统开发,允许不同应用程序之间高效地进行通信。 Apache CXF是一个开源...
1.2 Spring的RMI支持:Spring通过`org.springframework.remoting.rmi.RmiServiceExporter`和`RmiProxyFactoryBean`简化了RMI的使用。`RmiServiceExporter`用于发布服务,而`RmiProxyFactoryBean`则用于创建RMI服务的...
spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类
5. **持久层(Persistence)+ RMI**:持久层负责数据的持久化存储,RMI则用于远程方法调用,实现分布式系统间的通信。 #### 七、集成架构的实现 实现Struts+Spring+Hibernate+WebService的集成架构,关键在于各层...
**Spring RMI 深度解析** Spring框架作为Java企业级应用开发的首选,提供了丰富的功能,包括对远程方法调用(Remote Method Invocation,RMI)的支持。RMI是Java平台上的一个核心特性,允许在分布式环境中进行对象...
在这个"SpringRMI小例子"中,我们将深入探讨如何利用Spring框架来增强RMI的功能,使其更加灵活和易于管理。 首先,我们需要理解Spring框架在RMI中的角色。Spring提供了对RMI的高级抽象,通过其`org.springframework...
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,结合Spring框架,能够帮助开发者轻松地创建分布式应用程序。在这个"Spring RMI小例子"中,我们将深入理解Spring如何简化RMI的使用,以及...
6. **源码分析**:在提供的压缩包文件`SpringRMI`中,可能包含了上述所有步骤的代码示例。通过阅读这些源码,你可以深入理解Spring RMI的工作原理,包括服务暴露、注册、代理创建等。 7. **工具使用**:在开发过程...
1.4.8 RMI(远程方法调用) 1.4.9 JMS(Java消息服务) 1.4.10 JMX(Java分布式管理) 1.4.11 JACC(Java容器授权合同) 1.4.12 JCA(Java连接器体系) 1.5 小结 第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式...
Spring通过提供RMI集成,简化了RMI服务的创建和调用。以下是一些关键点: 1. **服务接口定义**:首先,你需要定义一个远程服务接口,这个接口将包含你希望在远程进程中执行的方法。 2. **服务实现**:接着,创建该...
RMI的核心概念包括远程接口、远程对象和 stub/skeleton,开发者需要定义远程接口,实现远程对象,并通过RMI注册表暴露服务。RMI适合于需要高性能、低延迟的内部系统通信,例如在分布式系统中的节点间通信。 最后,...
**Spring RMI 集成详解** 在Java开发中,远程方法调用(Remote Method Invocation,RMI)是一种用于在不同Java虚拟机之间进行对象交互的技术。Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加简单...
在IT行业中,远程方法调用(Remote Method Invocation,RMI)和Spring框架是两个非常重要的概念,它们在分布式系统开发中发挥着关键作用。RMI是Java平台提供的一种技术,用于在不同Java虚拟机(JVM)之间进行对象间...