`

部署RMI应用(服务器与RMI注册表分离方式)

 
阅读更多
一般情况下,我们的部署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端直接复制和包一起复制)


//		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);
分享到:
评论

相关推荐

    RMI应用开发小例子源码.rar

    3. **注册服务**:在服务器端,使用` LocateRegistry.createRegistry()` 创建一个RMI注册表,并使用` Naming.rebind()` 将实现类绑定到接口的名称。 4. **导出服务**:通过`UnicastRemoteObject.exportObject()` 将...

    RMI协议的应用与研究

    常用的工具有JDK自带的RMI注册表(rmiregistry)、`rmic`编译器(用于生成stub和skeleton文件),以及IDE如Eclipse或IntelliJ IDEA中的RMI插件,它们可以帮助开发者更便捷地创建、部署和调试RMI应用。 总的来说,...

    java-rmi-server.rar_Java RMI_rmi _服务器

    四、RMI与其他技术的结合 RMI常与其他技术如EJB、JMS、JNDI等结合使用,构建更复杂的企业级应用。 总结,Java RMI为开发者提供了构建分布式系统的能力,通过创建远程接口、实现远程对象、注册到注册表以及在客户端...

    (转)通用JAVA RMI服务器框架

    通过学习和使用这个通用的JAVA RMI服务器框架,开发者可以更快地搭建分布式应用,减少重复工作,并提高系统的可扩展性和可靠性。同时,深入理解RMI的工作原理和最佳实践,对于提升Java分布式编程能力非常有帮助。

    RMI应用实例及实验报告

    实验报告中可能会详细记录实现RMI应用的步骤,包括设置环境变量、编译源代码、运行RMI服务器和客户端等过程。在实验过程中,可能遇到的问题包括网络配置、权限问题、序列化异常(`RemoteException`)等,这些都是...

    Java分布式RMI获取服务器时间

    Java分布式RMI获取服务器时间是一种基于Java平台的远程方法调用(Remote Method Invocation,简称RMI)技术的应用示例。RMI是Java EE中的一个重要组件,它允许在不同的Java虚拟机(JVM)之间透明地调用对象的方法,...

    JAVA远程调用RMI与应用

    JAVA远程调用RMI与应用 一、RMI(Remote Method Invocation)概念解析 RMI,即远程方法调用,是Java平台提供的分布式计算模型,它允许Java对象跨网络进行方法调用,如同本地调用一样。RMI的实现基于Java的面向对象...

    RMI 服务器与客户端源码,很简单,自己做的,适合初学者

    此外,RMI与Java的其他网络技术,如EJB(Enterprise JavaBeans)和JMS(Java Message Service)等,也有密切关联,深入学习RMI有助于理解整个Java企业级开发的框架。 总之,RMI是Java网络编程的关键技术,通过这个...

    客户端服务器,多线程服务器,远程RMI会议

    在IT领域,客户端-服务器架构、多线程服务器和远程方法调用(RMI)是构建分布式系统中的关键概念。让我们深入探讨这三个主题,并了解它们如何在Java编程中实现。 首先,客户端-服务器架构是一种通信模型,其中...

    rmi文件下载与上传代码

    服务器端创建接口的实例并注册到RMI注册表中,客户端通过查找注册表获取远程对象引用,然后就可以像调用本地对象一样调用远程对象的方法。 在文件下载部分,服务器端可能会有一个`FileServer`类,它实现了文件服务...

    RMI原理及应用详解

    3. **Web服务器与应用服务器间的通信**: 如Servlets通过RMI与EJB交互。 4. **网格计算**: 在大规模分布式计算环境中,RMI可用于节点间的协调和通信。 5. **集群管理**: 在Java集群系统中,RMI用于节点间的监控、...

    web服务器 RMI meeting

    在Web服务器与RMI结合的场景中,Socket可以作为底层通信机制,使得Web服务器能够通过RMI与远程服务进行通信。 在"web服务器 RMI meeting sokect"的会议中,可能的讨论点包括: 1. 如何在Web服务器上实现RMI服务,...

    rmi服务端与客户端小程序

    Java RMI(Remote Method Invocation)是Java平台提供的一种用于实现远程对象交互的技术。它允许一个Java对象调用在不同...通过学习和实践这个小程序,你可以深入理解Java RMI的工作原理,并能够开发自己的分布式应用。

    HTTP客户端,HTTP服务器,RMI客户端和服务器

    本实验课主要涵盖了HTTP客户端与服务器以及RMI客户端和服务器的使用,旨在帮助学习者理解网络通信的基本原理和实现方式。 首先,我们来详细探讨HTTP(超文本传输协议)。HTTP是互联网上应用最广泛的一种网络协议,...

    rmi与spring整合实例

    当我们谈论“RMI与Spring整合实例”时,我们通常是指将RMI技术与Spring框架结合使用,以便构建可扩展的、分布式的Java应用程序。下面将详细解释这两个概念以及如何将它们整合在一起。 1. RMI基础: - RMI的核心...

    rmi.rar_rmi实现方式_rmi简单的实现

    5. 配置与部署:确保服务器和客户端都配置了正确的RMI运行环境,包括JRE、JDK,以及相关的系统属性设置。 三、RMI的应用场景 RMI广泛应用于分布式系统,如: - 分布式数据库:通过RMI调用远端数据库服务,实现数据...

    RMI商品管理系统.zip

    开发者可以在Eclipse中轻松创建RMI项目,编写接口和实现,配置RMI注册表,并进行调试。 总结来说,“RMI商品管理系统”是学习和实践Java RMI的一个理想起点。它展示了如何通过RMI实现分布式应用,如何设计远程接口...

    Rmi示例 Rmi代码示例

    - **RMI stubs与skeletons**:RMI系统自动生成的代理类(stubs)和骨架类(skeletons)用于处理客户端和服务器之间的交互。stub实现了客户端调用的逻辑,而skeleton则负责服务端的接收和调用。 4. **安全性**:RMI...

    一个java RMI应用实例 构建简单的RMI应用

    创建客户端RMI调用服务端的应用程序。 启动服务端,再启动客户端,测试是否调用成功。 如果客户端和服务端不在同一台电脑上,则需要对刚才定义的服务类采用rmic 编译一个客户端的框架类_stub并拷贝到客户端的类...

    rmi.rar_Java RMI_RMI java_RMI policy.all_rmi

    在“rmi.rar”这个压缩包中,我们可以找到与Java RMI相关的资料,可能包括示例代码、配置文件等。描述中提到的"java rmi例子"表明其中可能包含了一个或多个实际的RMI应用实例,这对于学习和理解RMI的工作原理非常有...

Global site tag (gtag.js) - Google Analytics