- 浏览: 197832 次
- 性别:
- 来自: 广州
最新评论
-
lxyoucan:
特地注册账号来感谢
在jsp上显示pdf||网页直接打开PDF 在IE中显示pdf文档的方法及参数设置 -
jinjiaoliu:
...
ant使用scp上传文件问题 -
AspirantHui:
非常感谢,你提供的方法解决了我的问题!
在jsp上显示pdf||网页直接打开PDF 在IE中显示pdf文档的方法及参数设置 -
cxh61207:
...
ant使用scp上传文件问题 -
daoyuanjiao:
如果用的是福昕PDF阅读器,该怎么弄呢?
在jsp上显示pdf||网页直接打开PDF 在IE中显示pdf文档的方法及参数设置
1. Name
RMI是Romote Method Invocation的缩写,就是远程方法调用。
2. Intent
具体的说,就是能够通过这种机制,实现在一个JVM上调用另一个JVM上的Java对象的方法。
3. Structure
(1)RMI Interface and Class
第一步:继承了Remote的interface
定义一个继承了Remote的interface,命名为TestRMIService。在其中有我们期望在Client端调用的方法testHello(),注意要抛出RemoteException。
第二步:继承了UnicastRemoteObject且实现了TestRMIService的class
定义一个继承了UnicastRemoteObject且实现了TestRMIService的class,命名为TestRMIServiceImpl。在其中实现testHello方法。
(2)RMI Server
第一步:
定义一个class,命名为TestServer,其中有main方法。在main方法中实例化TestRMIService一个远程对象,命名为testRMI。
第二步:
创建一个Registry,并向远程对象testRMI注册,注册名为“rmi://locahost:1234/testrmi”。
(3)RMI Client
第一步:
定义一个class,命名为TestClient,其中有main方法。查询注册
第二步:
查询注册名为“rmi://locahost:1234/testrmi”的TestRMIService远程对象,查询结果为testRMI。
第三步:
调用远程对象testRMI的方法testHello。
4. Sample Code
(1)TestRMIService
(2)TestRMIServiceImpl
(3)TestServer
(4)TestClient
5. Test
(1)运行TestServer
在Eclipse主界面的Package Explorer中你所创建的测试RMI的工程中的com.sinosuperman包中,右击TestServer,选择Run As,选择Java Application。
这时界面上会显示:
“注册远程对象成功”
(2)运行TestClient
在Eclipse主界面的Package Explorer中你所创建的测试RMI的工程中的com.sinosuperman.rmi包中,右击TestClient,选择Run As,选择Java Application。
这时界面上会显示:
“I'm RMI, Hello World!”
RMI是Romote Method Invocation的缩写,就是远程方法调用。
2. Intent
具体的说,就是能够通过这种机制,实现在一个JVM上调用另一个JVM上的Java对象的方法。
3. Structure
(1)RMI Interface and Class
第一步:继承了Remote的interface
定义一个继承了Remote的interface,命名为TestRMIService。在其中有我们期望在Client端调用的方法testHello(),注意要抛出RemoteException。
第二步:继承了UnicastRemoteObject且实现了TestRMIService的class
定义一个继承了UnicastRemoteObject且实现了TestRMIService的class,命名为TestRMIServiceImpl。在其中实现testHello方法。
(2)RMI Server
第一步:
定义一个class,命名为TestServer,其中有main方法。在main方法中实例化TestRMIService一个远程对象,命名为testRMI。
第二步:
创建一个Registry,并向远程对象testRMI注册,注册名为“rmi://locahost:1234/testrmi”。
(3)RMI Client
第一步:
定义一个class,命名为TestClient,其中有main方法。查询注册
第二步:
查询注册名为“rmi://locahost:1234/testrmi”的TestRMIService远程对象,查询结果为testRMI。
第三步:
调用远程对象testRMI的方法testHello。
4. Sample Code
(1)TestRMIService
package com.sinosuperman.rmi; import java.rmi.Remote; import java.rmi.RemoteException; public interface TestRMIService extends Remote { public String testHello() throws RemoteException; }
(2)TestRMIServiceImpl
package com.sinosuperman.rmi; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class TestRMIServiceImpl extends UnicastRemoteObject implements TestRMIService { private static final long serialVersionUID = -9039976499370682232L; public TestRMIServiceImpl() throws RemoteException { } @Override public String testHello() throws RemoteException { return "I'm RMI, Hello World!"; } }
(3)TestServer
package com.sinosuperman.server; import java.net.MalformedURLException; import java.rmi.AlreadyBoundException; import java.rmi.Naming; import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import com.sinosuperman.rmi.TestRMIService; import com.sinosuperman.rmi.TestRMIServiceImpl; public class TestServer { public static void main(String[] args) { try { /* Create a Remote object. */ TestRMIService testRMI = new TestRMIServiceImpl(); /* Create a registry object with 1234 port. */ LocateRegistry.createRegistry(1234); /* Register the Remote object to RMI registry server, and name it as testrmi. */ Naming.bind("rmi://localhost:1234/testrmi", testRMI); System.out.println("注册远程对象成功"); } catch (RemoteException e) { System.out.println("远程对象创建异常"); e.printStackTrace(); } catch (MalformedURLException e) { System.out.println("URL畸形异常"); e.printStackTrace(); } catch (AlreadyBoundException e) { System.out.println("重复绑定异常"); e.printStackTrace(); } } }
(4)TestClient
package com.sinosuperman.rmi; import java.net.MalformedURLException; import java.rmi.Naming; import java.rmi.NotBoundException; import java.rmi.RemoteException; public class TestRMIClient { public static void main(String[] args) { try { TestRMIService testService = (TestRMIService) Naming.lookup("rmi://localhost:1234/testrmi"); System.out.println(testService.testHello()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } catch (NotBoundException e) { e.printStackTrace(); } } }
5. Test
(1)运行TestServer
在Eclipse主界面的Package Explorer中你所创建的测试RMI的工程中的com.sinosuperman包中,右击TestServer,选择Run As,选择Java Application。
这时界面上会显示:
“注册远程对象成功”
(2)运行TestClient
在Eclipse主界面的Package Explorer中你所创建的测试RMI的工程中的com.sinosuperman.rmi包中,右击TestClient,选择Run As,选择Java Application。
这时界面上会显示:
“I'm RMI, Hello World!”
发表评论
-
Java常用的通信协议效率比较(转)
2013-01-23 14:38 1535本文比较了RMI,Hessian, ... -
JQuery工具插件qTip
2011-12-14 17:38 1174好吧,原谅我偷懒:http://messense.me/jqu ... -
JAVA解压缩文件——包含嵌套的压缩文件
2011-09-15 09:19 3012今天主要介绍JAVA处理ZIP文件,JAVA提供了相应的类、方 ... -
JAVA:附加码生成器(图片)
2011-08-29 11:30 1421〔Picture.java〕 package creato ... -
面试题--求质数
2011-04-29 13:04 1187求100以内的质数(指在一个大于1的自然数中,除了1和此整数自 ... -
Workspace in use or cannot be created, choose a different one.--错误解决办法
2010-11-25 13:16 1590eclipse 使用一段时间后,有时会因为一些故障自己就莫名 ... -
Java定时任务Timer
2010-11-19 11:12 1352Java定时任务,用到的地方可能比较多,例如:定时对数据库的某 ... -
AOP监听的简单例子
2010-11-11 16:13 1368Spring AOP是面向切面的方式,大部分项目使用它都是在事 ... -
Tomcat 启动时加载方法
2010-11-11 15:54 1540最近遇见一个需求,需要在项目中加入一个Mina通讯的客户端,而 ... -
AOP几个重要的概念
2010-11-09 16:45 1740《Spring参考手册》中定义了以下几个AOP的重要概念: ... -
结果集转换成json字符串
2010-08-25 11:20 3139在项目中做查询时一般使用:sql或者hql,今天分别介绍一下怎 ... -
java还原科学计数法的数值
2010-08-06 15:26 1970java.text.DecimalFormat nf = ne ... -
java.lang.IllegalArgumentException: No bean specified
2010-08-04 17:04 2895java.lang.IllegalArgumentExcept ... -
argument type mismatch问题解决
2010-07-01 09:31 6493type Exception report messag ... -
实现sybase数据库字段自增
2010-04-23 13:44 1053例如:在sybase中有一张用户表t_ug_user,其中包含 ... -
Hibernate框架ORM的原理
2010-04-21 14:48 1182hibernate,通过对jdbc进行封装,对 java类和 ... -
net.sourceforge.jtds.jdbc.ClobImpl 问题
2010-02-08 14:45 2804小弟最近在做数据查询时,遇到一个这样的问题: 数据列 ... -
父子页面之间值传递问题
2009-12-31 17:26 1542第一:页面中包含iframe ... -
Oracle函数和mysql函数比较
2009-12-31 17:23 21381. Oracle中的to_number()转换成 ... -
fusioncharts生成图表flash遮挡页面中元素的情况
2009-12-31 15:57 2183在做web开发中遇到fusionc ...
相关推荐
java rmi java rmijava rmi javajava rmi java rmi rmi
Java RMI 简单示例
java简单示例rmi java简单示例rmi
Java编程rmi实例,给出远程方法调用技术在java方面的具体例子。
JAVA分布式之RMI实例教程网络通信原理[收集].pdf
我的博客《Java中的RMI(远程方法调用)》的示例代码
JavaRMI的原理和实现方法 分布式对象计算 来源于青岛大学学报
简约而不简单的描述了RMI技术,希望对大家有所帮助。
本项目使用socket直接发送数据包来攻击rmi,通过反序列化攻击rmi,双击直接运行,对1099端口的rmi服务直接进行漏洞检测。
在这次的项目中,对于客户端与服务器之间的通信,想了许多办法,由于做的是富客户端应用,最终将技术选定在了RMI和Java-sockets两种之间,其中RMI的灵活性不高,客户端和服务器端都必须是java编写,但使用比较方便,...
java RMI
Java RMI-IIOP示例 分布式数据处理
采用JAVA rmi,带图形界面,完全由自己实现的聊天室,具备基本的聊天功能,可以自己扩充功能
检测javaRMI反序列化漏洞
用java编RMI程序
完整的Rmi调用示例,极难得的Rmi应用示例
实现java RMI 远程调用,包括 RMIServer RMIClient源码,测试用例。
java RMI技术实现的网络聊天室 编译通过,很完整的。代码很有参考价值
Java中RMI的实现机制Java中RMI的实现机制Java中RMI的实现机制Java中RMI的实现机制
用Java:rmi+状态模式简单实现网络五子棋+发送消息 编译后,在class文件所在的文件夹里,dos命令执行 1》start rmiregistry 2》start java -Djava.security.policy=policy Server 3》start java Play