先建树下java rmi工作原理
1、客户端发起请求,请求转交至RMI客户端的stub类;
2、stub类将请求的接口、方法、参数等信息进行序列化;
3、基于socket将序列化后的流传输至服务器端;
4、服务器端接收到流后转发至相应的skelton类;
5、skelton类将请求的信息反序列化后调用实际的处理类;
6、处理类处理完毕后将结果返回给skelton类;
7、Skelton类将结果序列化,通过socket将流传送给客户端的stub;
8、stub在接收到流后反序列化,将反序列化后的Java Object返回给调用者。
spring rmi实现
服务端实现
<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="serviceName">
<value>gamesterService</value> 服务名字,可随便起
</property>
<property name="service">
<ref bean="pageLinksService" /> 接口实际实现类
</property>
<property name="serviceInterface">
<value>
com.test.servicesupport.IPageLinksService 对外暴露的接口
</value>
</property>
<!-- defaults to 1099 -->
<property name="registryPort">
<value>9000</value> 注意不要与其它端口冲突
</property>
</bean>
你需要向客户端提供接口类和配置文件
<bean id="pageLinksRemotingService"
class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl">
<value>rmi://192.168.216.186:9000/gamesterService</value>
</property>
<property name="serviceInterface">
<value>
com.airinbox.gamester.servicesupport.IPageLinksService
</value>
</property>
<property name="lookupStubOnStartup">
<value>false</value>
</property>
<property name="refreshStubOnConnectFailure">
<value>true</value>
</property>
<property name="cacheStub">
<value>false</value>
</property>
</bean>
分享到:
相关推荐
本文将深入探讨"spring rmi 改造"这一主题,主要关注如何在原有的Spring RMI实现上进行优化,加入线程池控制以提高系统性能和资源利用率。 首先,让我们理解Spring RMI的基本概念。Spring RMI允许开发者利用Spring...
Spring RMI 实现了动态代理机制,允许客户端通过代理对象调用远程服务的方法,就像调用本地对象一样。 - **服务端配置** 服务端配置的核心在于 `RmiServiceExporter` 类,它负责创建 RMI 服务并将其暴露给客户端...
在这个"Spring RMI小例子"中,我们将深入理解Spring如何简化RMI的使用,以及如何通过它实现跨网络的交互。 首先,RMI允许Java对象在不同的JVM之间进行通信,仿佛它们都在同一个进程中运行。Spring通过提供自动注册...
- **配置RMI服务**:在Spring的XML配置文件中,使用`<bean>`标签定义RMI服务,指定远程接口、实现类以及RMI服务的端口。 - **注册RMI服务**:使用`<bean>`标签的`lookup-by-name`属性,将服务注册到RMI注册表。 - **...
通过这样的设置,我们可以利用Spring RMI实现跨JVM的业务处理,提高了系统的可扩展性和灵活性。这个示例展示了如何在实际项目中使用Spring RMI进行分布式系统的设计和开发,帮助我们理解Spring如何简化了RMI的使用。
在这个"SpringRMI小例子"中,我们将深入探讨如何利用Spring框架来增强RMI的功能,使其更加灵活和易于管理。 首先,我们需要理解Spring框架在RMI中的角色。Spring提供了对RMI的高级抽象,通过其`org.springframework...
本文将深入探讨“Spring RMI(Remote Method Invocation)应用”,这是Spring框架中用于实现远程方法调用的功能,它使得分布式系统开发变得更加简单。 首先,RMI是Java平台上的一个核心特性,允许在不同JVM之间透明...
Spring Remote Method Invocation ...理解并熟练掌握Spring RMI接口实现,能帮助开发者构建健壮的分布式系统,提高系统的可扩展性和可维护性。但同时也需要注意,随着技术的更新,适时考虑采用更先进的远程通信方式。
Spring RMI服务是一种在Java平台上实现远程方法调用(Remote Method Invocation, RMI)的技术,它允许分布式系统中的不同组件通过网络进行通信。在Spring框架的支持下,我们可以更方便地将服务发布为RMI服务,使得...
6. **源码分析**:在提供的压缩包文件`SpringRMI`中,可能包含了上述所有步骤的代码示例。通过阅读这些源码,你可以深入理解Spring RMI的工作原理,包括服务暴露、注册、代理创建等。 7. **工具使用**:在开发过程...
在这个简单的例子中,我们将深入理解Spring RMI的工作原理以及如何实现一个基本的Spring RMI应用。 首先,让我们了解RMI的基本概念。RMI允许Java对象在不同的JVM之间进行通信,仿佛它们都在同一台机器上。它通过...
在这个“spring+rmi非本地实现”的项目中,我们有两个主要部分:客户端(client)和服务端(rmiserver)。让我们深入探讨一下这两个部分以及它们如何协同工作。 1. **服务端(rmiserver)**: - **创建RMI接口**:...
Spring RMI(Remote Method Invocation)...通过分析服务端和客户端的源码,我们可以深入理解如何在Spring框架下实现和使用RMI远程调用,这对于任何希望在分布式系统中利用Spring的开发者来说都是一份宝贵的参考资料。
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,允许程序在不同的Java虚拟机(JVM)之间进行通信,实现分布式系统。在本文中,我们将深入探讨Spring框架如何集成RMI,以及如何创建和使用...
Spring框架对RMI的支持使得它更易于集成到现代企业级应用中,实现了服务间的松耦合和高效通信。本文将详细讲解Spring与RMI的整合,以及如何通过"SpringRMIClient"和"SpringRMIServer"这两个示例文件实现跨项目的远程...
本篇将深入探讨Spring如何与RMI结合,以及客户端和服务器端的实现细节。 ### 一、Spring RMI 服务器端集成 1. **定义远程接口**:首先,我们需要创建一个Java接口,该接口将定义远程服务的方法。例如,我们可以...
具体到这个压缩包“springRMI”,我们可以推测它可能包含了以下几个部分: 1. **配置文件**:如`applicationContext.xml`,其中定义了Spring容器中的Bean,可能包括RMI服务的接口和实现。 2. **远程接口**:`.java`...
上文我们利用Spring rmi实现了Spring的远程访问(Spring 实现远程访问详解——rmi),本文主要讲解利用HttpInvoke实现远程访问。 Spring httpInvoker使用标准java序列化机制,通过Http暴露业务服务。如果你的参数和...
Spring RMI(Remote Method Invocation)简单应用主要涉及的是在Java中使用Spring框架来实现远程方法调用的技术。RMI是Java提供的一种分布式计算能力,它允许一个Java对象调用网络另一端的Java对象的方法,实现了...
通过这种方式,你可以轻松地在Java项目中使用Spring RMI,实现分布式系统中的远程服务调用。同时,Spring框架提供的事务管理、AOP(面向切面编程)等功能也可以与RMI无缝集成,进一步增强系统的可维护性和扩展性。在...