- 浏览: 78951 次
文章分类
最新评论
一般情况下,我们的部署RMI应用的时候是把服务器和RMI注册表进程同时运行在一个服务器上,这是由于RMI注册表在注册远程对象的时候需要加载实现Remote的接口(.class)生成的字节码文件。但RMI服务同样支持从远程服务器的加载。
部署这样一个应用分为四步:
第一步:
1.下载NanoHTTPD到httpserver目录
NanoHTTPD是一个简易的HTTP服务器。参数说明
>java NanoHTTPD –p 端口号 –d http访问的更目录
2.在httpserver目录下编译NanoHTTPD类
3.在httpserver目录下创建目录download,启动NanoHTTPD打开命令行输入:java NanoHTTPD –p 8989 –d download。Download目录是用于存放实现了Remote接口的.class文件这里注意如果有有包的话还要创建同样包路径,也就是RMI注册表需要加载字节码文件。
第二步:
在服务器找到一个空目录或创建,并将classpath环境变量设置为空,window下set %classpath%=;这样是为了防止加载到服务器本地的一些类造成混乱。
第三步:
创建远程对象类,实现Remote接口继承UniCastRmoteObject.远程对象中的每个方法都要抛出RemoteException异常。-Djava.rmi.server.codebase=
创建server端注册远程对象。这些博客中有写。
第四步:
创建客户端,通过客户端访问远程对象。客户端中同样需要带完整类路径的远程对象的.class文件。(可以从server端直接复制和包一起复制)
部署这样一个应用分为四步:
第一步:
1.下载NanoHTTPD到httpserver目录
NanoHTTPD是一个简易的HTTP服务器。参数说明
>java NanoHTTPD –p 端口号 –d http访问的更目录
2.在httpserver目录下编译NanoHTTPD类
3.在httpserver目录下创建目录download,启动NanoHTTPD打开命令行输入:java NanoHTTPD –p 8989 –d download。Download目录是用于存放实现了Remote接口的.class文件这里注意如果有有包的话还要创建同样包路径,也就是RMI注册表需要加载字节码文件。
第二步:
在服务器找到一个空目录或创建,并将classpath环境变量设置为空,window下set %classpath%=;这样是为了防止加载到服务器本地的一些类造成混乱。
第三步:
创建远程对象类,实现Remote接口继承UniCastRmoteObject.远程对象中的每个方法都要抛出RemoteException异常。-Djava.rmi.server.codebase=
创建server端注册远程对象。这些博客中有写。
第四步:
创建客户端,通过客户端访问远程对象。客户端中同样需要带完整类路径的远程对象的.class文件。(可以从server端直接复制和包一起复制)
// System.setProperty("java.rmi.server.codebase", "http://localhost:8888/example/"); // RemoteService service = new RemoteServiceImpl(); // Naming.rebind("service", service); // // String path = ClassLoader.getSystemClassLoader().getResource(".").toString(); // System.setProperty("java.rmi.server.codebase", path); // Registry registry = LocateRegistry.getRegistry(); // RemoteService service = new RemoteServiceImpl(); // registry.rebind("service", service);
发表评论
-
使用javamail组件-----邮件发送
2013-08-09 16:35 485public static void sendMessag ... -
利用快速排序算法快速的取出前一千条数据
2013-08-06 15:49 534实现代码如下:原理是利用了快速排序‘分治’思想,判断左边区域 ... -
java的JNI本地调用代码
2013-06-21 11:56 474Jni中C++和Java的参数传递 如何使用JNI的一些基 ... -
如何解决在window下高并发TCP请求端口被占用问题
2013-05-02 09:43 3088当客户端启动到服务器的 TCP/IP 套接字连接时,客户端通 ... -
Maven的简单使用
2013-04-26 11:44 713----------------准备工作---------- ... -
js 压缩工具使用
2013-04-19 11:40 731//测试代码 compiler("F:\\com ... -
解决加载相同的类
2013-04-19 09:38 625URLClassLoader classLoader1 = ... -
将长url转化为短url
2013-02-21 18:05 710public class ShortAddressUtil ... -
如何判断上传的图片是否是正真的图片 防止上传恶意的非图片文件
2013-02-19 17:03 1016final String JPG = "ffd ... -
ChartDirect使用<制作统计图的组件>
2012-11-30 11:39 1541//创建一个由X,Y轴 ... -
获取字符拼音首字母
2012-10-08 13:41 781/** * @date 2010-1-22 * @bu ... -
jetty嵌入式采用xml配置
2012-09-24 09:40 1027Server server = new Server(); ... -
生成验证码图片
2012-08-29 17:29 924Java生成验证码 为了防止用户恶意,或者使用软 ... -
WebService分布式应用实现
2012-08-28 17:30 1164WebService 是一种跨语言的系统间交互标准,对外提供功 ... -
利用MulticastSocket发送广播信息
2012-08-24 11:35 808多播组通过 D 类 IP 地址和标准 UDP 端口号指定。D ... -
插件类的一种加载形式URLClassLoader
2012-08-22 10:11 789URL url = new URL("file ... -
RMI远程调用
2012-08-03 17:42 769第一步:远程对象接口 WareHose.java pack ... -
使用JNDI获取DataSource对象
2012-08-03 14:24 833Tomcat的conf/context.xml在<Con ... -
获取摘要、加密、解密
2012-08-02 16:57 1226生成SHA或MD5摘要 MessageDigest sha ... -
SecurityManager安全管理器
2012-08-02 11:18 1220权限设定文件F:/my.policy ...
相关推荐
3. **注册服务**:在服务器端,使用` LocateRegistry.createRegistry()` 创建一个RMI注册表,并使用` Naming.rebind()` 将实现类绑定到接口的名称。 4. **导出服务**:通过`UnicastRemoteObject.exportObject()` 将...
常用的工具有JDK自带的RMI注册表(rmiregistry)、`rmic`编译器(用于生成stub和skeleton文件),以及IDE如Eclipse或IntelliJ IDEA中的RMI插件,它们可以帮助开发者更便捷地创建、部署和调试RMI应用。 总的来说,...
四、RMI与其他技术的结合 RMI常与其他技术如EJB、JMS、JNDI等结合使用,构建更复杂的企业级应用。 总结,Java RMI为开发者提供了构建分布式系统的能力,通过创建远程接口、实现远程对象、注册到注册表以及在客户端...
通过学习和使用这个通用的JAVA RMI服务器框架,开发者可以更快地搭建分布式应用,减少重复工作,并提高系统的可扩展性和可靠性。同时,深入理解RMI的工作原理和最佳实践,对于提升Java分布式编程能力非常有帮助。
实验报告中可能会详细记录实现RMI应用的步骤,包括设置环境变量、编译源代码、运行RMI服务器和客户端等过程。在实验过程中,可能遇到的问题包括网络配置、权限问题、序列化异常(`RemoteException`)等,这些都是...
Java分布式RMI获取服务器时间是一种基于Java平台的远程方法调用(Remote Method Invocation,简称RMI)技术的应用示例。RMI是Java EE中的一个重要组件,它允许在不同的Java虚拟机(JVM)之间透明地调用对象的方法,...
JAVA远程调用RMI与应用 一、RMI(Remote Method Invocation)概念解析 RMI,即远程方法调用,是Java平台提供的分布式计算模型,它允许Java对象跨网络进行方法调用,如同本地调用一样。RMI的实现基于Java的面向对象...
此外,RMI与Java的其他网络技术,如EJB(Enterprise JavaBeans)和JMS(Java Message Service)等,也有密切关联,深入学习RMI有助于理解整个Java企业级开发的框架。 总之,RMI是Java网络编程的关键技术,通过这个...
在IT领域,客户端-服务器架构、多线程服务器和远程方法调用(RMI)是构建分布式系统中的关键概念。让我们深入探讨这三个主题,并了解它们如何在Java编程中实现。 首先,客户端-服务器架构是一种通信模型,其中...
服务器端创建接口的实例并注册到RMI注册表中,客户端通过查找注册表获取远程对象引用,然后就可以像调用本地对象一样调用远程对象的方法。 在文件下载部分,服务器端可能会有一个`FileServer`类,它实现了文件服务...
3. **Web服务器与应用服务器间的通信**: 如Servlets通过RMI与EJB交互。 4. **网格计算**: 在大规模分布式计算环境中,RMI可用于节点间的协调和通信。 5. **集群管理**: 在Java集群系统中,RMI用于节点间的监控、...
在Web服务器与RMI结合的场景中,Socket可以作为底层通信机制,使得Web服务器能够通过RMI与远程服务进行通信。 在"web服务器 RMI meeting sokect"的会议中,可能的讨论点包括: 1. 如何在Web服务器上实现RMI服务,...
Java RMI(Remote Method Invocation)是Java平台提供的一种用于实现远程对象交互的技术。它允许一个Java对象调用在不同...通过学习和实践这个小程序,你可以深入理解Java RMI的工作原理,并能够开发自己的分布式应用。
本实验课主要涵盖了HTTP客户端与服务器以及RMI客户端和服务器的使用,旨在帮助学习者理解网络通信的基本原理和实现方式。 首先,我们来详细探讨HTTP(超文本传输协议)。HTTP是互联网上应用最广泛的一种网络协议,...
当我们谈论“RMI与Spring整合实例”时,我们通常是指将RMI技术与Spring框架结合使用,以便构建可扩展的、分布式的Java应用程序。下面将详细解释这两个概念以及如何将它们整合在一起。 1. RMI基础: - RMI的核心...
5. 配置与部署:确保服务器和客户端都配置了正确的RMI运行环境,包括JRE、JDK,以及相关的系统属性设置。 三、RMI的应用场景 RMI广泛应用于分布式系统,如: - 分布式数据库:通过RMI调用远端数据库服务,实现数据...
开发者可以在Eclipse中轻松创建RMI项目,编写接口和实现,配置RMI注册表,并进行调试。 总结来说,“RMI商品管理系统”是学习和实践Java RMI的一个理想起点。它展示了如何通过RMI实现分布式应用,如何设计远程接口...
- **RMI stubs与skeletons**:RMI系统自动生成的代理类(stubs)和骨架类(skeletons)用于处理客户端和服务器之间的交互。stub实现了客户端调用的逻辑,而skeleton则负责服务端的接收和调用。 4. **安全性**:RMI...
创建客户端RMI调用服务端的应用程序。 启动服务端,再启动客户端,测试是否调用成功。 如果客户端和服务端不在同一台电脑上,则需要对刚才定义的服务类采用rmic 编译一个客户端的框架类_stub并拷贝到客户端的类...
在“rmi.rar”这个压缩包中,我们可以找到与Java RMI相关的资料,可能包括示例代码、配置文件等。描述中提到的"java rmi例子"表明其中可能包含了一个或多个实际的RMI应用实例,这对于学习和理解RMI的工作原理非常有...