`
hsabby
  • 浏览: 21001 次
社区版块
存档分类
最新评论
  • Rainyn: 作者写的很好。有完整项目实例吗?这个是跑在tomcat还是je ...
    初识cometd
  • hwfrog: 这个没有看过具体的源码,猜测的,因为init是所有用户进程的父 ...
    inittab的使用
  • hwfrog: 确实简单,这个感觉和RCP很类似,RMI在某些地方还是有一定的 ...
    Java的RMI初探
  • hwfrog: 不错, 学习了; 这段时间也想研究一下源码, 多交流
    初识cometd
  • hwfrog: 后面准备总结一下java的接口和内部类; 请博主多关注哈
    Java访问修饰符

Java的RMI初探

 
阅读更多

<!--defaultCSS-->

简介:RMI -- remote method invocation,远程方法调用;对使用者屏蔽底层通信细节,可以像调用本地方法那样调用远程方法。
 
实例:
1.服务端
1)定义提供的接口:注意必须从Remote接口派生
public interface MonitorService extends Remote{
    String getTime() throws RemoteException;
}
2)实现该接口:注意必须从UnicastRemoteObject派生,表示该对象可以被远程调用
public class MonitorServiceImpl extends UnicastRemoteObject implements MonitorService{
    protected MonitorServiceImpl() throws RemoteException {
        super();
    }
    @Override
    public String getTime() throws RemoteException {
        
        return new Date().toString();
    }
}
3)发布该接口实现:我们的service对象,就绑定在了//10.0.64.13:8900/monitor上,只要是访问这个地址,就是调用我们的对象了
        LocateRegistry.createRegistry(8900);        
        MonitorService service = new MonitorServiceImpl();       
        Naming.bind("//10.0.64.13:8900/monitor", service);
2.客户端
直接使用该接口:
MonitorService service = (MonitorService) Naming.lookup("//10.0.64.13:8900/monitor");
System.out.println(service.getTime());
 
直接运行上面的代码,我们的rmi实例就结束了。
 
讨论:
这么简单的东西,为什么感觉用的人不多呢?原因之一估计是语言的关系,使用rmi,要求通信双方都必须采用java实现;原因之二和纯正的socket通信相比,它消耗的资源还是要更多;
分享到:
评论
1 楼 hwfrog 2013-08-29  
确实简单,这个感觉和RCP很类似,RMI在某些地方还是有一定的应用的,比如在Java JMX中,可以将RMI作为一种可选的协议适配器存在,我们在实际项目中也是采用这种方式,很方便

相关推荐

    java学习之spring2.0

    - **Spring 初探**:Spring的核心在于依赖注入(DI)和面向切面编程(AOP),提供了一个轻量级的容器来管理对象的生命周期和相互依赖关系。 - **Spring 体系**:包括Core Container(核心容器)、Data Access/...

    hadoop开发者文档

    5、Java RMI + Lucene 构建分布式检索应用初探 ................ - 17 - 6、一对多的表关联在mapreduce中的应用(续) .................. - 26 - 7、InputSplit文件格式分析................................. - 32 -...

    大数据技术 Hadoop开发者第二期 MapReduce HDFS Hive Mahout HBase 共64页.pdf

    #### 五、Java RMI + Lucene 构建分布式检索应用初探 - **技术组合**:结合 Java Remote Method Invocation (RMI) 和 Lucene 实现分布式检索应用。 - **关键技术点**: - Java RMI 的使用,实现远程方法调用功能。...

    JumpAndRunBuilder:它应该是一个游戏,您可以在其中构建跳跃和奔跑以及其他玩家或 AI 可以“挑战它”,但现在还没有

    《构建跳跃与奔跑游戏——Java实现的JumpAndRunBuilder初探》 在游戏开发的世界里,创新和趣味性是至关重要的。"JumpAndRunBuilder"项目,正如其名,旨在提供一个平台,让玩家能够创建自己的跳跃和奔跑关卡,并且...

    spring in action 最新

    这本书以其详尽的内容和丰富的示例闻名,旨在帮助Java开发者深入理解并掌握Spring框架。全书共分为多个部分,覆盖了Spring的核心概念、企业级应用开发以及Web层的实现。 在介绍Spring框架时,书中首先讲解了“控制...

    Spring开发指南

    在Spring初探部分,首先涉及到的是准备工作,包括安装必要的开发环境和配置工具,为构建Spring基础代码做准备。接下来,指南会介绍Spring的基础语义,特别是依赖注入(Dependency Injection,简称DI)的概念及其在...

    开源框架 Spring Gossip

    从代理机制初探 AOP 动态代理 &lt;br&gt;AOP 观念与术语 Spring AOP Advices Advices 包括了Aspect 的真正逻辑,由于缝合至Targets的时机不同,Spring 提供了几种不同的 Advices。 Before ...

Global site tag (gtag.js) - Google Analytics