- 浏览: 292222 次
文章分类
- 全部博客 (148)
- Shell (2)
- Python (4)
- Java (31)
- Javascript (4)
- Android (7)
- SQL优化 (0)
- Linux (5)
- webOS (4)
- MySQL (18)
- memcach redis (1)
- memcach (0)
- redis (3)
- memcache (2)
- svn (1)
- UED (1)
- 网络 (1)
- virtual box (1)
- git (1)
- Gitosis (1)
- 云计算 (2)
- 12306 (1)
- google (1)
- spdy (1)
- nginx (1)
- tomcat (2)
- SSL (2)
- lucene (2)
- 空间搜索 (1)
- lzo (1)
- 数据压缩 (1)
- ios (1)
- maven (1)
- elasticsearch (1)
- scribe (1)
- flume (1)
- jni (1)
- jna (1)
- hadoop (2)
- 大数据 (1)
最新评论
-
aa80303857:
不错,学习了。互相关注一下。
Sitemesh学习笔记 -
xiaozang:
...
关于nginx的rewrite重写规则 -
coderuncle:
楼主有没有研究过cloudera flume和apache f ...
scribe,flume -
奔跑的犀牛:
...
linux下自动启动mysql -
lsn_1212:
网上装svn的资源太多了,这个挺好的,说的挺全的。
SVN Server安装部署攻略(Linux+SubVersion+Apache)
RMI是一种分布式技术,使用RMI可以让一个虚拟机上的应用程序请求调用位于网络上另一处JVM上的对象方法。这是的以分布式方式部署应用成为了可能。
RMI的两个核心所在分别为Skeleton和Stub:
- Skeleton只在位于服务器端的程序,负责接受客户端发来的请求数据,并交由服务器端业务处理程序处理,最后将处理结果返回给客户端。
- Stub则负责在客户端向服务器端发送相关数据。
开发RMI应用程序需要以下几步:
- 定义远程接口:继承自java.rmi.Remote定义应用接口:IAppInterface
- 实现服务端对象:需继承自java.rmi.UnicastRemoteObject,同时要实现已定义的接口IAppINterface中的方法
- 启动RMI注册服务
- 执行start rmiregistry启动RMI注册服务
- 启动服务端程序,注册到RMI注册表中
- 开发并执行客户端程序
在程序中执行java.rmi.registry.LocateRegistry的createRegistry(int port)方法完成RMI注册服务的启动。
java.rmi.registry.Registry接口提供了几个方法来实现对RMI注册表的访问(类似于操作JNDI命名空间的javax.naming.Context接口)
- void bind(String name, java.rmi.Remote obj):将obj对象绑定在RMI注册表中,键值为name
- void rebind(String name, java.rmi.Remote obj):重写键值为name的RMI注册表绑定关系,把obj绑定在RMI注册表中,键值为name
- java.rmi.Remote lookup(String name):在RMI注册表中根据键值name查找对象并返回
- void unbind(String name):解除键值为name的对象的RMI绑定关系
示例:
1、定义远程接口
package org.eone.test.rmi; import java.rmi.Remote; import java.rmi.RemoteException; public interface IWeather extends Remote{ public String getWeather(String city) throws RemoteException; }
2、实现远程服务
package org.eone.test.rmi; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; public class WeatherImpl extends UnicastRemoteObject implements IWeather{ public WeatherImpl() throws RemoteException{ } public String getWeather(String city){ return city + " : is Sunny..."; } public static void main(String[] args){ try{ Registry registry = LocateRegistry.createRegistry(1099); registry.bind("/weather", new WeatherImpl()); System.out.println("服务对象已绑定至注册表..."); }catch(Exception e){ System.out.println("绑定服务对象到注册表失败..."); } } }
3、开发并运行客户端程序
package org.eone.test.rmi; import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; public class WeatherClient{ public static void main(String[] args){ try{ Registry registry = LocateRegistry.getRegistry("127.0.0.1", 1099); IWeather stub = (IWeather)registry.lookup("/weather"); String result = stub.getWeather("SHANGHAI"); System.out.println(result); }catch(Exception e){ e.printStackTrace(); } } }
发表评论
-
Spring发送邮件。
2013-06-04 15:15 1183Spring邮件抽象层的主要包为org.springfram ... -
JNA—JNI终结者
2013-03-04 14:08 1425JNA— http://blog.csdn.n ... -
Java 压缩实现
2013-01-29 10:51 1031Java压缩技术(一) ZLib Java压缩技术(二) ZI ... -
深入理解JVM内幕:从基本结构到Java 7新特性
2013-01-26 22:57 875原文链接 http://www.importnew.com/ ... -
使用logback轻松管理日志
2013-01-22 14:12 2279最近才开始在项目中使用logback,有一种相见恨晚的感觉, ... -
SSL双向认证java实现
2013-01-09 13:58 1181本文通过模拟场景,介绍SSL双向认证的java实现 默认的情 ... -
TOMCAT-SSL双向认证-配置实例
2013-01-09 13:54 1114SSL (Secure Socket Layer - 安全套接 ... -
Java入门-BitSet的使用
2012-12-06 11:01 9488在使用PAT-Tree的中文实现中需要用到大量的位运算, ... -
由12306.cn谈谈网站性能技术
2012-10-17 16:35 95912306.cn网站挂了,被 ... -
Server redirected too many times
2012-09-17 16:54 6044我之前遇到过这种问题,有些网站是这样的,他判断cooki ... -
java并发编程
2012-08-15 19:45 0Queue BlockingQueue Con ... -
在junit中使用open session in view
2012-08-07 11:22 2098废话不多说直接上代码: jpa的 import ... -
mvn指定项目名称
2012-06-07 17:10 980call mvn eclipse:clean eclipse: ... -
在JVM关闭前想做的操作Rumtime
2011-12-01 11:07 1101在虚拟机被关闭前想做一些收尾工作,可以使用 Runtim ... -
Apache和Subversion集成安装与配置
2011-08-12 17:30 1174要准备的东西如下:1,apac ... -
Nginx+tomcat 做负载均衡
2011-08-12 17:27 1383一、 1、将tomcat 的serv ... -
SVN Server安装部署攻略(Linux+SubVersion+Apache)
2011-07-18 18:45 2736一. 安装apr依赖库(Apache Po ... -
git
2011-05-26 11:38 12521. git init 2. cd - 快速返回 3 ... -
java工具集合
2011-05-23 17:29 891code review gerrit g ... -
常用的comet框架
2011-05-20 11:46 1363Atmosphere pushlet DWR comet ...
相关推荐
本项目提供了一个入门级的源代码示例,帮助开发者理解如何在 Spring 环境下集成 RMI 技术。以下是关于这两个技术及其整合的详细知识点: **Spring 框架** 1. **Spring 概述**:Spring 是一个开源的 Java 应用开发...
- **实践操作**:通过动手编写和运行RMI示例代码,可以更深入地理解RMI的工作机制,增强解决实际问题的能力。 通过以上分析,我们不仅了解了RMI的基本原理,还掌握了其实现的具体步骤。对于初学者来说,这是一个很...
- **示例代码**: 创建一个简单的Web应用程序并集成Spring Security。 - **1.4 运行示例** - 如何运行配置好的Spring Security项目,确保安全功能正常工作。 - **示例代码**: 启动应用服务器,测试登录功能。 **...
这个简单的RMI示例可以帮助我们理解以下关键概念: - 远程接口:定义了客户端和服务器之间的通信协议。 - 远程对象:实现了远程接口,实际处理远程调用。 - RMI注册表:作为远程对象的服务目录,客户端通过它找到...
的各种简单示例,快速入门使用 Spring Boot 各种组件 示例项目 基础部分: :Spring Boot 快速入门 Hello world 示例 :Spring Boot 自定义 Banner (启动图案) :Spring Boot 主题切换 :Spring Boot 简单的服务...
综上所述,学习RMI入门需要理解其核心概念,掌握创建远程接口和实现类的方法,了解RMI的工作流程,熟悉序列化过程,以及能够编写简单的RMI服务端和客户端程序。同时,通过阅读相关的源码和使用相关的工具,可以...
07-RMI-HelloWorld则是一个简单的RMI入门示例,帮助初学者理解RMI的工作原理。 3. **SMTP(Simple Mail Transfer Protocol)**:12-SMTP-Example是使用JavaMail API发送邮件的示例。SMTP协议定义了电子邮件的传输...
Java EE提供了一系列组件和服务,包括Web层组件(如JSP和Servlet)、业务层组件(如Enterprise JavaBeans, EJB)以及诸如JNDI(Java Naming and Directory Interface)、JDBC(Java Database Connectivity)、RMI...
- **Hello World示例**:通过编写简单的“Hello World”程序来熟悉Java的基本语法和运行环境。 - **面向对象编程(OOP)**:Java是一种完全支持OOP特性的语言,理解类、对象、继承、封装、多态等概念对于学习Java至关...
Java的入门教程对于初学者来说是一个非常有用的资源,它从基本的数据类型开始讲解,涵盖了类的继承、重载、复写以及Java的常用类库,还包括了多线程的介绍、同步异步机制和异常捕获等重要知识点,此外还提供了网络...
- **Java RMI 入门.doc**:适合初学者的RMI教程,可能包括基本概念、示例和实践指导。 - **Key Differences between HTTP1.0 and HTTP1.1.mht**:这个文件详细列出了HTTP1.0和HTTP1.1之间的关键差异。 - **Getting...
- **其他服务**:如 JNDI (Java Naming and Directory Interface),JDBC (Java Database Connectivity),RMI (Remote Method Invocation),JTA (Java Transaction API),JavaMail 等。 ##### 3. Java EE 标准与框架...
通过以上步骤,我们成功地实现了一个简单的基于RMI的文件下载系统。整个过程中,远程接口的定义、远程对象的实现以及客户端和服务端的交互都是RMI技术的核心部分。掌握了这些基本原理和技术细节,就可以进一步开发更...
2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 ...
通过这个入门示例,你可以学习如何设置RMI环境,创建并实现远程接口,创建远程对象,使用RMI注册表进行对象注册,以及在客户端进行远程方法调用。这将帮助你理解RMI的工作原理,并为将来开发分布式应用打下基础。在...
【标题】"dubbo入门示例,普通Java进程,不使用spring boot cloud" 【描述】这篇博客文章提供了关于如何在不使用Spring Boot Cloud的情况下,基于Java简单进程搭建Dubbo入门应用的详细步骤。Dubbo是一个高性能、轻...
本书《基础网络编程在Java》是一本非常实用的教程,不仅适合初学者入门学习,也适合有一定基础的开发人员进一步提升自己的技能。通过阅读本书,读者可以系统地掌握Java网络编程的基本概念和技术细节,为后续的项目...
- **示例**:简单的“Hello World”Servlet。 **5.4.3 Servlet案例** - **示例**:用户注册页面。 **5.5 HTML中的FORM元素** **5.5.1 , ** - **定义**:用于收集用户输入。 **5.5.2 , ** - **定义**:用于下拉...
【Java通信入门学习】 在Java编程中,通信是软件系统中的关键部分,它涉及不同程序、进程或系统之间的数据交换。本教程将带你逐步了解Java通信的基础知识,适合初学者入门。通过4天的学习,你将掌握如何在Java中...