RMI规范(4)

原创 2001年07月24日 20:28:00

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 操作。

Java 实现RMI入门程序

JavaRMI 是远程技术的一种,具有效率高于WebService,SOA,但是比纯粹Socket编程效率低 Socket>JavaRMI>WebService Socket过于麻烦,需要程序员自己解...
  • blueboz
  • blueboz
  • 2016年04月20日 10:56
  • 1248

PHP PSR-4 基本代码规范(中文版)

原文传送门:PizzaLiu Autoloader 关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、...
  • xyy94813
  • xyy94813
  • 2016年03月21日 09:48
  • 3281

「PSR 规范」PSR-4 自动加载规范

1. 概述 本 PSR 是关于由文件路径 自动载入 对应类的相关规范, 本规范是可互操作的,可以作为任一自动载入规范的补充,其中包括 PSR-0,此外, 本 PSR 还包括自动载入的类对应的文件...
  • TAKUNHA
  • TAKUNHA
  • 2016年09月05日 17:12
  • 1093

ssd8 exercise4 RMI远程方法调用

  • 2009年05月16日 13:15
  • 4KB
  • 下载

RMI规范说明

  • 2008年03月20日 00:49
  • 50KB
  • 下载

rpc 协议规范 之 rmi http webservice 和 一些框架

RPC(Remote Procedure Call)是一种远程调用协议,简单地说就是能使应用像调用本地方法一样的调用远程的过程或服务,可以应用在分布式服务、分布式计算、远程服务调用等许多场景。说起 R...
  • xiaoliuliu2050
  • xiaoliuliu2050
  • 2016年10月24日 10:16
  • 439

【Dongle】【Java】规范之RMI

RMI(Remote Method Invoke):remote(遥远的) invoke(调用),RMI是一种被EJB使用的更底层的协议,能够让在某个Java虚拟机上的对象像调用本地对象一样调用另一个...
  • Dongle_74
  • Dongle_74
  • 2017年01月22日 11:35
  • 235

J2EE规范——RMI与EJB

偶然在网上看到了EJB和RMI的关系,和大家分享一下其中的奥秘 一、RMI         RMI是Java的一组拥护开发分布式应用程序的API。RMI使用Java语言接口定义了远...
  • tr1912
  • tr1912
  • 2017年01月14日 21:11
  • 522

RMI 规范

RMI(基本概念) Java Remote Method Invocation ( RMI -- Java 远程方法调用)允许您使用Java 编写分布式对象,不同的Java 虚拟机(JVM)之间进行...
  • cdl2008sky
  • cdl2008sky
  • 2011年10月05日 08:04
  • 1609

[J2EE规范]RMI简单实例

RMI是实现EJB的基础,通过RMI,J2EE将EJB组件创建为远程对象。RMI是远程过程调用(RPC)的一种面向对象实现(Java实现)。RMI底层是通过socket通信和对象序列化技术来实现的。...
  • u013036688
  • u013036688
  • 2017年06月29日 18:05
  • 633
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RMI规范(4)
举报原因:
原因补充:

(最多只允许输入30个字)