网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 新手入门 > JDK > Spring RMI 支持简单介绍  

Spring RMI 支持简单介绍

2008-06-17  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

    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     } }

网管bitscn_com

    接下来在伺服端,您只要在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> 

中国网管联盟bitsCN.com


        </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"
网管u家u.bitscn@com

      "http://www.springframework.org/dtd/spring-beans.dtd">
网管下载dl.bitscn.com

    <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>以下是个简单的客户端呼叫远程服务的例子:

网管网www.bitscn.com

    ....
            ApplicationContext context =
                    new FileSystemXmlApplicationContext("rmi-client.xml"); 网管u家u.bitsCN.com

            ISomeService service = (ISomeService) context.getBean("someServiceProxy"); 网管下载dl.bitscn.com

            String result = service.doSomeService("Some request");
            System.out.println(result);
    ....

中国网管联盟bitsCN.com


TAGs
 上一篇:JDK5.0的11个主要新特征一览   下一篇:没有了
Spring RMI 支持简单介绍 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: