`
zhengxuezhou
  • 浏览: 148016 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RMI规范--第四章

    博客分类:
  • j2se
阅读更多
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,

RemoteExceptio

n;

public static void bind(String url, Remote obj)

throws AlreadyBoundException, java.net.MalformedURLException,

RemoteExce

ption;

public static void rebind(String url, Remote obj)

throws RemoteException, java.net.MalformedURLException;

public static void unbind(String url)

throws RemoteException, NotBoundException, java.net.MalformedURLExce

ptio

n;

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 操作。
分享到:
评论

相关推荐

    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 ...

    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 ...

    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.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服务器管理...

    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 ...

    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 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    第四章 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应用 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    第四章 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应用 ...

    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 ...

    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 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    第四章 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应用 ...

Global site tag (gtag.js) - Google Analytics