RMI之由浅入深(一)】的更多相关文章

0x01.什么是RMI RMI(Remote Method Invocation)即Java远程方法调用,RMI用于构建分布式应用程序,RMI实现了Java程序之间跨JVM的远程通信.顾名思义,远程方法调用:客户端比如说是在手机,然后服务端是在电脑:同时都有java环境,然后我要在手机端调用服务端那边的某个方法,这就是,远程方法调用: 使用RMI的时候,客户端对远程方法的调用就跟对同一个Java虚拟机(也就是本地)上的方法调用是一样的.一般调用和RMI调用有一点不同,虽然对客户端来说看起来像是本…
写在最前面 距离上一次发文章已经很久了,其实这段时间一直也没有停笔,只不过在忙着找工作还有学校结课的事情,重新弄了一下博客,后面也会陆陆续续会把文章最近更新出来~ 这篇文章有点长,就分了两篇Q PS:那个Github上Java知识问答的文章也没有停笔,最近也会陆续更新 文章目录: RabbitMQ由浅入深入门全总结(一) RabbitMQ由浅入深入门全总结(二) 1. 浅浅道来 1.1 什么是中间件? IDC(互联网数据中心)的定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件…
目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要素: 属性名称 属性的名称.标题. 属性编辑器(属性值) 这里显示的是属性的当前值,显示的一般为文字,也可以以图标的形式.编辑器会自动根据数据的类型定义一个验证器,比如属性类型为int类型,你是无法输入字符内容的.另外,一般属性的编辑是直接在属性值这栏直接输入,但是复杂的属性,一般都会提供一个自定义…
Winform中PropertyGrid控件是一个非常好用的对象属性编辑工具,对于Key-Value形式的数据的处理也是非常的好用. 因为Property控件设计良好,在很小的空间内可以展示很多的内容,具体可以参考Visual Studio的属性编辑. 如果我们使用得当,可以节省您很多宝贵的空间,又提供了一个相对好用的配置工具. 目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 基础用法 主要介绍PropertyGrid控件的基本使…
项目采用jfinal框架,做了一个RMI的服务,对其它程序提供服务.实现上,写了一个RmiPlugin package com.wisdombud.cloudtalk.plugin; import java.io.IOException; import java.rmi.Naming; import java.rmi.NoSuchObjectException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.R…
今天有个应用一直起不来,感觉配置都对啊,奇了怪了.看日志发现如下: STATUS | wrapper | 2017/01/04 08:09:31 | Launching a JVM...INFO | jvm 7 | 2017/01/04 08:09:32 | Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 40124; nested exception is:…
1. RMI的原理: RMI系统结构,在客户端和服务器端都有几层结构. 方法调用从客户对象经占位程序(Stub).远程引用层(Remote Reference Layer)和传输层(Transport Layer)向下,传递给主机,然后再次经传 输层,向上穿过远程调用层和骨干网(Skeleton),到达服务器对象. 占位程序扮演着远程服务器对象的代理的角色,使该对象可被客户激活. 远程引用层处理语义.管理单一或多重对象的通信,决定调用是应发往一个服务器还是多个.传输层管理实际的连接,并且追追踪可…
Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.可以用此方法调用的任何对象必须实现该远程接口.   Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技术. 大名鼎鼎的EJB都是建立在rmi基础之上的,现在还有一些开源的远程调用组件,其底层技术也是rmi.   在大力鼓吹Web Service.SOA的时代,是不是每个应…
能否用讲个故事的方式,由浅入深,通俗易懂地解释一下什么是天使投资,VC,PE 今天在知乎上看到一篇文章,觉得值得一转的,Here. 我给楼主讲个完整点的故事吧.长文慎点,前方高能,自备避雷针.18岁以下者请在父母或监护人指导下阅读此文. ----------------------------------------------我是分割线------------------------------------------------------- 我和东尼大木是一起玩到大的朋友,也有共同的爱好.…
在java中,我们有多种可以使用的远程调用技术 1.远程方法调用(remote method invocation, RMI)  适用场景:不考虑网络限制时(例如防火墙),访问/发布基于java的服务  2.Caucho的Hession和Burlap 适用场景:考虑网络限制时,通过http访问/发布基于java的服务.Hession是二进制协议,Burlap是基于XML的  3.Spring基于HTTP的远程服务(HTTP invoke) 适用场景:考虑网络限制,并希望使用基于xml或专有的序列…
最近在学习Dubbo,RMI是很重要的底层机制,RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制.使用这种机制,某一台计算机(即JVM虚拟机)上的对象可以调用另外一台计算机上的对象来获取远程数据. RMI的实现对建立分布式Java应用程序至关重要,是Java体系非常重要的底层技术. >>RMI的概念和原理 RMI思路是在客户端安装一个代理(proxy),代理是位于客户端虚拟机中的一个对象,对于客户端对象,看起来…
Java RMI简介: 它是Java的一个核心API和类库,允许一个Java虚拟机上运行的Java程序调用不同虚拟机上运行的对象中的方法,即使这两个虚拟机运行于物理隔离的不同主机上. Java RMI在JDK1.1版本已经存在,是非常重要的底层技术. 下面通过一个简单的例子来测试: package com.tc.remote; import java.rmi.Remote; import java.rmi.RemoteException; /** * 一个远程调用接口RMIQueryStatus…
 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099; nested exception is:  java.net.BindException: Address already in use: JVM_BindDisconnected from server    端口被占用,进入windows命令,查看什么进程被占用了 netstat -aon|findstr 1099 显示. 然后关闭占用该端口的进…
下面我将介绍一个完整的实例,让初学者能快速体验RMI的功用. 分为以下四个步骤 1. 创建远程接口及声明远程方法(HelloInterface.java)2. 实现远程接口及远程方法(继承UnicastRemoteObject)(Hello.java)3. 启动RMI注册服务,并注册远程对象(HelloServer.java)4. 客户端查找远程对象,并调用远程方法(HelloClient)5. 执行程序:启动服务HelloServer:运行客户端HelloClient进行调用 具体代码及对应步…
EhCache 系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点. EhCache 的主要特性有: 快速.精干 简单: 多种缓存策略: 缓存数据有两级:内存和磁盘,因此无需担心容量问题: 缓存数据会在虚拟机重启的过程中写入磁盘: 可以通过 RMI.可插入 API 等方式进行分布式缓存: 具有缓存和缓存管理器的侦听接口: 支持多缓存管理器实例,以及一个实例的多个缓存区域: 提供 Hibernate 的缓存实现: EhCache集群解决的问题:  由 于 EhCa…
RMI 是java语言的一个RPC框架,本文给出基础例子如下: 1.实现接口: public interface ICalc extends Remote { public int add(int param1, int param2) throws java.rmi.RemoteException; } 2.服务端实现该接口: public class CalcImpl extends UnicastRemoteObject implements ICalc { protected CalcI…
搞java的不懂rmi好像说不过去.. ,复习一遍. 参照http://www.iteye.com/topic/173909 http://lzj0470.iteye.com/blog/426760 非常详细 步骤 1 准备接口Interfase(需继承Remote)和实现类Clazz(继承UnicastRemoteObject实现Interfase) 2 server:创建Clazz,绑定Naming.rebind ("p1", p1); (端口默认是1099 ? )—— 如此简单!…
jmx链接的时候,最简单的例子都行不通,郁闷,出现了: 参考:http://reiz6153.blog.163.com/blog/static/401089152009442723208/ 代码: MBeanServer mbs = MBeanServerFactory.createMBeanServer("HelloAgent"); JMXServiceURL url = new JMXServiceURL( "service:jmx:rmi://localhost:909…
基于RMI服务传输大文件,分为上传和下载两种操作,需要注意的技术点主要有三方面,第一,RMI服务中传输的数据必须是可序列化的.第二,在传输大文件的过程中应该有进度提醒机制,对于大文件传输来说,这点很重要,因为大文件的传输时间周期往往比较长,必须实时告知用户大文件的传输进度.第三,针对大文件的读取方式,如果采用一次性将大文件读取到byte[]中是不现实的,因为这将受制于JVM的可用内存,会导致内存溢出的问题. 笔者实验的基于RMI服务传输大文件的解决方案,主要就是围绕以上三方面进行逐步解决的.下面…
今天将一个web应用从weblogic 10.3迁移到jboss EAP 6.3上,该应用使用oracle coherence做为缓存,部署上去后,启动时一直报如下错误:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_29]    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_2…
接上文<架构设计:系统间通信(8)--通信管理与RMI 上篇>.之前说过,JDK中的RMI框架在JDK1.1.JDK1.2.JDK1.5.JDK1.6+几个版本中做了较大的调整.以下我们讨论的RMI工作原理都是基于JDK1.6+版本的. 3.JAVA RMI 工作原理 通过上面的两组代码,我们大概知道了RMI框架是如何使用的.下面我们来讲解一下RMI的基本原理.本人翻阅网上的众多RMI资料基本上代码都是一大抄(甚至变量名.语法错误都一样),还有很多资料存在误导读者的情况.下图描述了整个RMI框…
1.概述 在概述了数据描述格式的基本知识.IO通信模型的基本知识后.我们终于可以进入这个系列博文的重点:系统间通信管理.在这个章节我将通过对RMI的详细介绍,引出一个重要的系统间通信的管理规范RPC,并且继续讨论一些RPC的实现:再通过分析PRC的技术特点,引出另一种系统间通信的管理规范ESB,并介绍ESB的一些具体实现.最后我们介绍SOA:面向服务的软件架构. 2.RMI基本使用 RMI(Remote Method Invocation,远程方法调用),是JAVA早在JDK 1.1中提供的JV…
一.问题描述 今天一来公司,在IntelliJ IDEA 中启动Tomcat服务器时就出现了如下图所示的错误:…
RMI 相关知识 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方案之一.其实它可以被看作是RPC的Java版本.但是传统RPC并不能很好地应用于分布式对象系统.而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用. RMI目前使用Java远程消息交换协议JRMP(Java Remot…
gulp进阶构建项目由浅入深 阅读目录 gulp基本安装和使用 gulp API介绍 Gulp.src(globs[,options]) gulp.dest(path[,options]) gulp.task(name[,deps],fn); gulp.watch(glob[,opts],tasks) gulp一些常用插件 gulp-rename(重命名) gulp-uglify(JS压缩) gulp-minify-css(css文件压缩) gulp-minify-html(html压缩) gu…
[前面的话] 最近过的好舒服,每天过的感觉很充实,一些生活和工作的技巧注意了就会发现,其实生活也是可以过的如此的有滋有味,满足现在的状况,并且感觉很幸福. 学习java RMI的原因是最近在使用dubbo框架做一个系统,所以对这java RMI进行学习,做一些笔记,基础性文章,选择性阅读. [定义]       Java RMI:Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口.…
远程通信机制RPC与RMI的关系 http://blog.csdn.net/zolalad/article/details/25161133       1.RPC RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC不依赖于具体的网络传输协议,tcp.udp等都可以.由于存在各式各样的变换和细节差异,相应的rpc也派生出了各式远程过程通信协议.RPC是跨语言的通信标准,SUN和…
RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制.使用这种机制,某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据.RMI是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径.在过去,TCP/IP套接字通讯是远程通讯的主要手段,但此开发方式没有使用面向对象的方式实现开发,在开发一个如此的通讯机制时往往令程序员感觉到乏味,对此RPC(Remote Procedure…
服务器端代码如下: IHello接口: import java.rmi.Remote; import java.rmi.RemoteException; public interface IHello extends Remote { /** * @return return hellowold * @throws java.rmi.RemoteException */ public String helloWorld() throws RemoteException; /** * @param…
一.定义远程服务器上接口 public interface RMIService { public String getInfo(); } 二.实现远程服务器上接口 public class RMIServiceImpl implements RMIService{ public String getInfo() { String msg = "RMI 服务!"; return msg; } } 三.配置服务器文件 applicationContext_service.xml <…