[仅作收藏]
RMI是从JDK 1.1开始就出现的API功能,它让客户端在使用远程对象所提供的服务时,就如何使用本地对象一样,然而RMI在使用时必须一连串繁复的手续,像是服务介 面在定义时必须继承java.rmi.Remote接口、服务Server在实作时必须继承java.rmi.UnicastRemoteObject类 别、必须使用rmic产生stub与skeleton等等。
透过org.springframework.remoting.rmi.RmiServiceExporter,Spring 简化了这些手续,来实际看看例子,了解Spring在RMI上的使用与简化,首先定义服务对象的接口:
ISomeService.java
package onlyfun.caterpillar;
public interface ISomeService {
public String doSomeService(String some);
public void doOtherService(int other);
}
可以看到服务对象的接口不用继承java.rmi.Remote界面,而在实作时也不用继承java.rmi.UnicastRemoteObject,例如:
SomeServiceImpl.java
package onlyfun.caterpillar;
public class SomeServiceImpl implements ISomeService {
public String doSomeService(String some) {
return some + " is processed";
}
public void doOtherService(int other) {
// bla.. bla
}
}
接下来在伺服端,您只要在Bean定义档中定义,让Spring管理、生成Bean,即可注册、启动RMI服务,例如:
rmi-server.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="someService" class="onlyfun.caterpillar.SomeServiceImpl"/>
<bean id="serviceExporter"
class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="service">
<ref bean="someService"/>
</property>
<property name="serviceName">
<value>SomeService</value>
</property>
<property name="serviceInterface">
<value>onlyfun.caterpillar.ISomeService</value>
</property>
</bean>
</beans>
很简单,只要告诉org.springframework.remoting.rmi.RmiServiceExporter服务对象、名称与要代理的接口,之后Spring读取完定义文件并生成Bean实例后,RMI服务就会启动。
接下来看看客户端要如何实作,只要透过org.springframework.remoting.rmi.RmiProxyFactoryBean,并告知服务的URL、代理的接口即可,就好像在使用本地端管理的服务一样,例如Bean定义档可以如下撰写:
rmi-client.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="someServiceProxy"
class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl">
<value>rmi://localhost/SomeService</value>
</property>
<property name="serviceInterface">
<value>onlyfun.caterpillar.ISomeService</value>
</property>
</bean>
</beans>
以下是个简单的客户端呼叫远程服务的例子:
...
ApplicationContext context =
new FileSystemXmlApplicationContext("rmi-client.xml");
ISomeService service = (ISomeService) context.getBean("someServiceProxy");
String result = service.doSomeService("Some request");
System.out.println(result);
...
分享到:
相关推荐
Synaptics公司作为全球领先的触控解决方案供应商,其RMI(Remote Input Interface)系列芯片在业界有着广泛的应用。RMI3是Synaptics推出的一种新型接口,而S3508则是基于RMI3技术的一款高性能触摸芯片。该压缩包中的...
在这个“Java RMI的应用”项目中,我们看到一个用RMI实现的课程成绩管理系统。这个系统由几个关键组件组成,包括服务器端和客户端的接口、实现以及支持文件。 1. **RMI基本概念**:RMI的核心是远程对象,这些对象...
在这个名为“RMI.rar_gui with rmi in ja_rmi _rmi gui_simple rmi with GUI”的项目中,开发者创建了一个简单的Java RMI计算器应用,该应用包含了图形用户界面(GUI)。这个项目的主要目标是展示如何将RMI与GUI结合...
在“rmi.rar_Java RMI_RMI source code_java RMI simple_rmi”这个压缩包中,我们可以预见到包含了一些简单的RMI示例代码和相关的文档,比如“www.pudn.com.txt”可能是一个文档链接或者资源说明,而“新建文件夹”...
Java RMI(Remote Method ...这些实例可能涵盖基本的RMI应用,以及更复杂的场景,例如处理并发请求、优化性能、处理安全性和异常等。实践中学习是掌握RMI的最佳途径,因此,这个压缩包将是一个宝贵的教育资源。
Java Remote Method Invocation(RMI)是Java平台中用于构建分布式应用程序的一种关键技术。它允许Java对象在不同的Java虚拟机(JVM)之间进行交互,仿佛它们都在同一台机器上运行。这个"java_in_rmi.rar"压缩包包含...
5. **RMI 安全性**:标签中提到了“rmi_policy.all”,这通常是指RMI的安全策略文件,用于控制RMI应用程序的权限。通过设置策略文件,可以限制远程对象的操作,确保系统的安全性。 6. **部署和运行**:使用RMI时,...
综上所述,"liaotianshi.rar_RMI聊天室_java 网络_rmi _rmi 聊天_网络聊天室"是一个使用Java RMI技术构建的网络聊天应用,涉及了Java网络编程、RMI原理及其应用,以及可能的并发处理和安全优化。通过对RMI的理解和...
本项目"RMI.rar"是一个基于RMI实现的简单聊天应用,旨在帮助用户理解RMI的基本原理及其在实际应用中的实现方式。 RMI的核心思想是对象透明性,即无论对象位于哪个网络节点,都能像调用本地对象一样调用其方法。这极...
Java RMI(远程方法调用)是Java编程语言中的一项核心技术,自JDK 1.1版本起就被引入...虽然现代的Java框架如Spring、EJB等提供了更高级别的分布式服务,但理解RMI的基本原理对于深入学习Java分布式系统仍然是必要的。
Spring框架对RMI的支持使得它更易于集成到现代企业级应用中,实现了服务间的松耦合和高效通信。本文将详细讲解Spring与RMI的整合,以及如何通过"SpringRMIClient"和"SpringRMIServer"这两个示例文件实现跨项目的远程...
本文将深入探讨“Spring RMI(Remote Method Invocation)应用”,这是Spring框架中用于实现远程方法调用的功能,它使得分布式系统开发变得更加简单。 首先,RMI是Java平台上的一个核心特性,允许在不同JVM之间透明...
RMI_EMRT_1.02_2022 模板.xlsx
RMI是Java多层架构中的重要组成部分,尤其适用于构建分布式应用程序,如服务器端应用、分布式数据库系统或网格计算环境。 RMI的工作原理基于以下几个核心概念: 1. **远程接口(Remote Interface)**:这是定义...
Java Remote Method Invocation (RMI) 是Java平台中用于构建分布式应用程序的一种重要技术。RMI允许Java对象在不同的Java虚拟机(JVM)之间调用方法,从而实现了远程对象的透明访问。这个RAR文件"JAVA RMI.rar"包含...
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,结合Spring框架,能够帮助开发者轻松地创建分布式应用程序。在这个"Spring RMI小例子"中,我们将深入理解Spring如何简化RMI的使用,以及...
Spring Boot简化了Spring应用程序的启动和配置,包括RMI服务。在Spring Boot应用中,可以通过配置文件(application.properties或application.yml)设置RMI端口和服务,自动暴露RMI接口。 ### 7. 示例代码 创建...
RMI在分布式计算环境中非常有用,它使得开发者可以构建分布式应用程序,这些程序可以跨越网络调用方法,就像它们在同一台机器上运行一样。 RMI的工作原理基于以下几个关键概念: 1. **远程接口(Remote Interface...
Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种用于构建分布式应用程序的技术。它允许Java对象在不同的JVM(Java虚拟机)之间进行通信,仿佛这些对象都在同一台机器上运行。RMI使得开发...
RMI规范详细阐述了如何在Java应用程序中实现远程方法调用,使得开发者可以构建分布式系统,使得网络上的不同节点能够协同工作。 在RMI中,主要涉及以下几个核心概念: 1. **远程接口(Remote Interface)**:这是...