`
huxiaojun_198213
  • 浏览: 101181 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

RMI规范--第四章

    博客分类:
  • RMI
阅读更多
客户机接口

程序员在编写使用远程对象的 applet 或应用程序时,需要注意 java.rmi包中可用的 RMI 系统客户机可视接口。

4.1 远程接口

package java.rmi; 
public interface Remote {} 


java.rmi.Remote 接口用来识别所有远程接口;所有远程对象必须直接或间接实现此接口。

实现类可以实现任意数目的远程接口,并可扩展其它远程实现类。RMI 提供一些
远程对象实现可以扩展的类,有助于远程对象的创建。这些类是
java.rmi.server.UnicastRemoteObject和java.rmi.activation.Activatable。

有关如何定义远程接口的详细信息,参见“java.rmi.Remote 接口”(2.4.1)一
节。

4.2 RemoteException 类
类java.rmi.RemoteException 是许多在执行远程方法调用时可能发生的、与
通信有关的异常的通用超类。

远程接口中的每种方法(也是一个接口)必须在其throws 子句中列出 RemoteException(或其超类,如java.io.IOException 或 java.lang.Exception)。

package java.rmi; 
public class RemoteException extends java.io.IOException 
{ 
public Throwable detail; 
public RemoteException(); 
public RemoteException(String s); 
public RemoteException(String s, Throwable ex); 
public String getMessage(); 
public void printStackTrace(); 
public void printStackTrace(java.io.PrintStream ps); 
public void printStackTrace(java.io.PrintWriter pw); 
} 


RemoteException 可用详细消息(即 s)和一个嵌套异常(即 ex,Throwable)
进行构造。嵌套异常 ex 在构造函数的第三种形式中被指定为参数,通常是 RMI
调用过程中发生的基本 I/O 异常。

getMessage 方法返回异常的详细消息,包括嵌套异常(如果有)中的消息。
printStackTrace 方法在类 java.lang.Throwable 中将被覆盖掉,以打印嵌套异
常的堆栈跟踪。

4.3 Naming 类
java.rmi.Naming 类提供存储和获得对远程对象注册服务程序中远程对象引用的方法。

Naming 类中的方法以如下形式的,URL 格式的 java.lang.String作为其中的一个参数:

//host:port/name

其中 host 是注册服务程序所在的主机(远程或本地),port 是注册服务程序
接收调用的端口号,name 是注册表未作出解释的简单字符串。
host 和 port是可选的。如果省略了 host,则主机缺省值为本地 主机。如果省略了 port,则端口缺省值为 1099,即 RMI 系统注册服务程序 rmiregistry 所用的“众所
周知”的端口。

为远程对象绑定名称即为稍后使用的远程对象关联或注册名称,可用于查询该远程对象。可以使用 Naming 类的 bind 或 rebind 方法将远程对象与名称相关联。

当远程对象已用 RMI 注册服务程序在本地主机上进行过注册(绑定)后,远程
(或本地)主机上的调用程序就可以按名称查询远程对象、获得其引用,然后在
对象上调用远程方法。必要时,某一主机上运行的服务器可以共享一个注册服务
程序。

服务器的各个进程也可创建和使用自己的注册服务程序(详细信息,参见 java.rmi.registry.LocateRegistry.createRegistry 方法)。

package java.rmi; 

public final class Naming 
{ 
public static Remote lookup(String url) 
throws NotBoundException, java.net.MalformedURLException, 
RemoteException;
 
public static void bind(String url, Remote obj) 
throws AlreadyBoundException, java.net.MalformedURLException, 
RemoteException; 


public static void rebind(String url, Remote obj) 
throws RemoteException, java.net.MalformedURLException; 

public static void unbind(String url) 
throws RemoteException, NotBoundException, java.net.MalformedURLException;
 
public static String[] list(String url) 
throws RemoteException, java.net.MalformedURLException; 
} 



lookup 方法返回与名称的文件部分相关联的远程对象。如果名称未绑定到对象上
,则抛出 NotBoundException。

bind 方法将把指定名称绑定到远程对象上。如果该名称已绑定到某一对象上,
则抛出 AlreadyBoundException。

rebind 方法总将名称绑定到对象上,无论该名称是否已绑定。原有绑定将丢失。
unbind 方法将取消名称和远程对象间的绑定。如果没有绑定,则抛出 NotBound
Exception。

list 方法返回一个 String 对象的数组,该对象包含注册服务程序中绑定 URL
的快照。 为了向注册服务程序查询其内容列表,只需要 URL 上的主机名和端口信息;因此,URL 的“file”部分将被忽略。
----------------------------------------------------------------------
----------
注意 - 这些方法也可能抛出 java.rmi.AccessException。AccessException 表
示调用程序无执行特定操作的权限。例如,只有运行注册服务程序的主机上的本地客户机才允许执行 bind、rebind和 unbind 操作。但任何非本地客户机都可调用 lookup 操作。  
分享到:
评论

相关推荐

    Java Android 企业级编码规范

    #### 第4章 格式规范 - **包的导入**:根据相关性对导入的包进行分组,便于阅读和管理。 - 示例: ```java import java.io.IOException; import java.net.URL; import java.rmi.RmiServer; import java.rmi....

    Thinking in Java 中文第四版+习题答案

    第4章 初始化和清除 4.1 由构建器保证初始化 4.2 方法过载 4.2.1 区分过载方法 4.2.2 主类型的过载 4.2.3 返回值过载 4.2.4 默认构建器 4.2.5 this关键字 4.3 清除:收尾和垃圾收集 4.3.1 finalize()用途何在 4.3.2 ...

    TongWeb5.0快速使用手册

    #### 第4章 常用TongWeb主要参数调整 - 本章涵盖了调整TongWeb运行时关键参数的方法,以优化其性能和稳定性。 - 包括JVM堆内存设置、应用访问端口修改、日志设置(开启/关闭)、并发线程数设定、通道和JDBC连接池...

    第15章 复习的重点和内容课件

    本复习资料主要针对第15章的内容,涵盖了分布式程序设计的期末考试重点,主要包括Java EE的基本概念和体系结构、JSF开发以及EJB应用的基础知识。复习内容详细列举了可能出现在考试中的题型,如判断题、选择题、填空...

    JMX1.4 规范 翻译 第一章(介绍)(至1.6节)

    Java Management Extensions(JMX)1.4规范是Java平台中用于管理系统和应用程序的重要技术。它提供了管理和监控Java应用程序、设备和服务的标准框架。本章节主要介绍了JMX的基本概念、架构以及核心组件。 ### 1. ...

    JAVA编程技术教学大纲.

    ### 第4章 Java的I/O流和异常处理 - **内容概览**:介绍I/O流概述、字节级输入输出流、字符流处理、文件操作、对象序列化、异常处理机制及自定义异常类。 - **教学要求**:学生应掌握常用的字节级输入输出流。 - **...

    JSP高级编程(全)

    第4 章 JSP 与J2EE 分布式处理技术 4.1 J2EE 和分布式处理技术 4.2 远程方法调用RMI 技术 4.3 CORBA 技术 4.4 JNDI 技术 4.5 本章小结6 第二部分 JSP 技术和XML 技术 第5 章 XML 简介 5.1 XML 简介及其语法规则 5.2 ...

    Java网络高级编程

    第4章介绍了Javabean技术,Javabean是Java语言编写的标准组件模型,主要用于构建可重用的软件组件,它支持Java的事件模型、属性和持久化存储。 第5章涉及Java XML技术,XML是可扩展标记语言,用于存储和传输数据,...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    第4章 利用JDBC和JTA访问 数据库和管理全局事务 178 4.1 JDBC和容器管理的数据源 179 4.1.1 JDBC概述 179 4.1.2 使用JDBC执行数据库访问 180 4.1.3 使用WebLogic服务器管理的 数据源 182 4.1.4 使用JBoss服务器管理...

    java课堂笔记_自己总结的

    #### 第一章 SQL Server 基本操作 ##### SQL Server 操作须知 1. **安装路径**: 安装文件及其安装路径都不能包含中文字符,否则可能会导致安装失败或出现其他错误。 2. **版本有效期**: 如果安装后一段时间内能够...

    中间件技术及应用考试复习重点

    #### 第一章 中间件产生背景与分布式环境 ##### 一、中间件的基本概念 1. **中间件定义**:中间件是位于系统软件(如操作系统和网络软件)与应用软件之间的一种软件层。它的主要功能是使不同的应用软件能够跨越...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    第4章 初始化和清除 4.1 由构建器保证初始化 4.2 方法过载 4.2.1 区分过载方法 4.2.2 主类型的过载 4.2.3 返回值过载 4.2.4 默认构建器 4.2.5 this关键字 4.3 清除:收尾和垃圾收集 4.3.1 finalize()用途何在 4.3.2 ...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    第4章 初始化和清除 4.1 由构建器保证初始化 4.2 方法过载 4.2.1 区分过载方法 4.2.2 主类型的过载 4.2.3 返回值过载 4.2.4 默认构建器 4.2.5 this关键字 4.3 清除:收尾和垃圾收集 4.3.1 finalize()用途何在 4.3.2 ...

    Think in Java(中文版)chm格式

    第4章 初始化和清除 4.1 由构建器保证初始化 4.2 方法过载 4.2.1 区分过载方法 4.2.2 主类型的过载 4.2.3 返回值过载 4.2.4 默认构建器 4.2.5 this关键字 4.3 清除:收尾和垃圾收集 4.3.1 finalize()用途...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    第四章 Tomcat使用指南 4.1 Tomcat简介 4.1.1 Tomcat的目录结构 4.1.2 Tomcat的配置参数 4.2 建立Tomcat的开发环境 4.2.1 下载Tomcat 4.2.2 设定TOMCAT_HOME 4.3 验证Tomcat是否安装成功 4.4 创建和发布Web应用 ...

    Java初学者入门教学

    第4章 初始化和清除 4.1 由构建器保证初始化 4.2 方法过载 4.2.1 区分过载方法 4.2.2 主类型的过载 4.2.3 返回值过载 4.2.4 默认构建器 4.2.5 this关键字 4.3 清除:收尾和垃圾收集 4.3.1 finalize()用途何在 4.3.2 ...

    JAVA_Thinking in Java

    第4章 初始化和清除 4.1 由构建器保证初始化 4.2 方法过载 4.2.1 区分过载方法 4.2.2 主类型的过载 4.2.3 返回值过载 4.2.4 默认构建器 4.2.5 this关键字 4.3 清除:收尾和垃圾收集 4.3.1 finalize()用途何在 4.3.2 ...

    ThinkInJava

    第4章 初始化和清除 4.1 由构建器保证初始化 4.2 方法过载 4.2.1 区分过载方法 4.2.2 主类型的过载 4.2.3 返回值过载 4.2.4 默认构建器 4.2.5 this关键字 4.3 清除:收尾和垃圾收集 4.3.1 finalize()用途何在 4.3.2 ...

Global site tag (gtag.js) - Google Analytics