`
solon.jar
  • 浏览: 44764 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Spring RMI应用_转载

阅读更多

[仅作收藏]

 

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_RMI3_Specification.zip_RMI3_Synaptics_rmi4_s3508 _spec

    Synaptics公司作为全球领先的触控解决方案供应商,其RMI(Remote Input Interface)系列芯片在业界有着广泛的应用。RMI3是Synaptics推出的一种新型接口,而S3508则是基于RMI3技术的一款高性能触摸芯片。该压缩包中的...

    Java RMI的应用.rar_Java RMI_Performance RMI_RMI java_rmi _成绩

    在这个“Java RMI的应用”项目中,我们看到一个用RMI实现的课程成绩管理系统。这个系统由几个关键组件组成,包括服务器端和客户端的接口、实现以及支持文件。 1. **RMI基本概念**:RMI的核心是远程对象,这些对象...

    RMI.rar_gui with rmi in ja_rmi _rmi gui_simple rmi with GUI

    在这个名为“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.rar_Java RMI_RMI source code_java RMI simple_rmi”这个压缩包中,我们可以预见到包含了一些简单的RMI示例代码和相关的文档,比如“www.pudn.com.txt”可能是一个文档链接或者资源说明,而“新建文件夹”...

    Rmi.rar_Java RMI_RMI java_java RMI 线程_rmi

    Java RMI(Remote Method ...这些实例可能涵盖基本的RMI应用,以及更复杂的场景,例如处理并发请求、优化性能、处理安全性和异常等。实践中学习是掌握RMI的最佳途径,因此,这个压缩包将是一个宝贵的教育资源。

    java_in_rmi.rar_Java RMI_RMI java_rmi _精通rmi

    Java Remote Method Invocation(RMI)是Java平台中用于构建分布式应用程序的一种关键技术。它允许Java对象在不同的Java虚拟机(JVM)之间进行交互,仿佛它们都在同一台机器上运行。这个"java_in_rmi.rar"压缩包包含...

    rmi.rar_Java RMI_RMI java_RMI policy.all_rmi

    5. **RMI 安全性**:标签中提到了“rmi_policy.all”,这通常是指RMI的安全策略文件,用于控制RMI应用程序的权限。通过设置策略文件,可以限制远程对象的操作,确保系统的安全性。 6. **部署和运行**:使用RMI时,...

    liaotianshi.rar_RMI聊天室_java 网络_rmi _rmi 聊天_网络聊天室

    综上所述,"liaotianshi.rar_RMI聊天室_java 网络_rmi _rmi 聊天_网络聊天室"是一个使用Java RMI技术构建的网络聊天应用,涉及了Java网络编程、RMI原理及其应用,以及可能的并发处理和安全优化。通过对RMI的理解和...

    RMI.rar_chat rmi_java rmi chat_rmi _rmi 聊天

    本项目"RMI.rar"是一个基于RMI实现的简单聊天应用,旨在帮助用户理解RMI的基本原理及其在实际应用中的实现方式。 RMI的核心思想是对象透明性,即无论对象位于哪个网络节点,都能像调用本地对象一样调用其方法。这极...

    RMI.rar_Java RMI_java.rmi_java.rmi.Remot_remote

    Java RMI(远程方法调用)是Java编程语言中的一项核心技术,自JDK 1.1版本起就被引入...虽然现代的Java框架如Spring、EJB等提供了更高级别的分布式服务,但理解RMI的基本原理对于深入学习Java分布式系统仍然是必要的。

    Spring-RMI.rar_spring rmi

    Spring框架对RMI的支持使得它更易于集成到现代企业级应用中,实现了服务间的松耦合和高效通信。本文将详细讲解Spring与RMI的整合,以及如何通过"SpringRMIClient"和"SpringRMIServer"这两个示例文件实现跨项目的远程...

    spring rmi应用

    本文将深入探讨“Spring RMI(Remote Method Invocation)应用”,这是Spring框架中用于实现远程方法调用的功能,它使得分布式系统开发变得更加简单。 首先,RMI是Java平台上的一个核心特性,允许在不同JVM之间透明...

    RMI_EMRT_1.02_2022 模板.xlsx

    RMI_EMRT_1.02_2022 模板.xlsx

    RMI.zip_Java RMI_RMI java_rmi

    RMI是Java多层架构中的重要组成部分,尤其适用于构建分布式应用程序,如服务器端应用、分布式数据库系统或网格计算环境。 RMI的工作原理基于以下几个核心概念: 1. **远程接口(Remote Interface)**:这是定义...

    JAVA RMI.rar_Java RMI_ME_RMI java_rmi

    Java Remote Method Invocation (RMI) 是Java平台中用于构建分布式应用程序的一种重要技术。RMI允许Java对象在不同的Java虚拟机(JVM)之间调用方法,从而实现了远程对象的透明访问。这个RAR文件"JAVA RMI.rar"包含...

    Spring RMI小例子

    Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,结合Spring框架,能够帮助开发者轻松地创建分布式应用程序。在这个"Spring RMI小例子"中,我们将深入理解Spring如何简化RMI的使用,以及...

    Spring RMI

    Spring Boot简化了Spring应用程序的启动和配置,包括RMI服务。在Spring Boot应用中,可以通过配置文件(application.properties或application.yml)设置RMI端口和服务,自动暴露RMI接口。 ### 7. 示例代码 创建...

    java-rmi.zip_RMI java_rmi

    RMI在分布式计算环境中非常有用,它使得开发者可以构建分布式应用程序,这些程序可以跨越网络调用方法,就像它们在同一台机器上运行一样。 RMI的工作原理基于以下几个关键概念: 1. **远程接口(Remote Interface...

    rmi.zip_Java RMI_java rmi网络_java源代码 RMI

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种用于构建分布式应用程序的技术。它允许Java对象在不同的JVM(Java虚拟机)之间进行通信,仿佛这些对象都在同一台机器上运行。RMI使得开发...

    RMI规范说明.rar_Java RMI_RMI java_rmi

    RMI规范详细阐述了如何在Java应用程序中实现远程方法调用,使得开发者可以构建分布式系统,使得网络上的不同节点能够协同工作。 在RMI中,主要涉及以下几个核心概念: 1. **远程接口(Remote Interface)**:这是...

Global site tag (gtag.js) - Google Analytics