网站地图
3936.net
学霸百科 没有你查不到的
javax.naming

「官网地址0365.tv」-「永久地址0365.tv」

软件包 javax.naming 为访问命名服务提供类和接口。 此包定义 Java Naming and Directory InterfaceTM (JNDI) 的命名操作。 JNDI 向使用 Java 编程语言编写的应用程序提供命名和目录功能。它被设计成与任何特定的命名或目录服务实现无关。因此可以使用共同的方式对多种服务(新的、新出现的及已经部署的服务)进行访问。

此包定义上下文 的概念,由 Context 结构表示。上下文由一组采境名称到对象的绑定 组成。Context 是用来查找、绑定、取消绑定和重颂永抹新命名对象,以及创建和销毁子上下文的核心接口。

lookup() 是最常使用的操作。当向 lookup() 提供想要查询的对象的名称时,它将返回绑定到该名称的对象。例如,以下代码段要查找一台打印机并将文档发送给该打印机对象打印:

Printer printer = (Printer)ctx.lookup("treekiller");

printer.print(report);

Context 接口中的每个命名方法都有两个重载形请婆遥式:一个接受 Name 参数,另一个接受字永促誉击符串名称。Name 是一个表示一般名称的接口,一般名称是零个或多个组件的有序序列。对于这些方法,可以使用 Name 表示复合名称 (CompositeName),从而可以使用跨多个名称空间的名称来命名一个对象。

接受 Name 的重载方法对那些需要对名称进行以下操作的应用程序很有用:组合名称、比较组件等等。接受字符串名称的重载方法对那些简单的应用程序可能更加有用,比如那些只是读取某一名称以及查找相应对象的应用程序。

Binding 类表示一个名称到对象的绑定。它是一个包含所绑定对象的名称、对象的类的名称和对象本身的元组 (tuple)。

Binding 类实际上是 NameClassPair 的子类,由对象的名称和对象的类名称组成。在只想要关于对象的类的信息以及不想为获得对象而额外开销时,NameClassPair 很有用。

对象以不同方式存储在命名和目录服务中。如果对象存储支持存储 Java 对象,则它可能支持以序列化形式存储对象。不过,一些命名和目录服务不支持存储 Java 对象。此外,对于目录中某些对象而言,Java 程序只是访问它们的一组应用程序付兰道格。在这种情况下,序列化 Java 对象可能不是最合适的表示形式。JNDI 定义了一个由 Reference 类表示的引用,它包含有关如何构造对象副本的信息。JNDI 将尝试把从目录中找到的引用转换成它们表示的 Java 对象,从而给 JNDI 客户端制造一种目录中存储的是 Java 对象的假象。

在 JNDI 中,所有命名和目录操作都是相对于上下文执行的。没有绝对的根。所以 JNDI 定义了一个初始上下文 InitialContext,为命名和目录操作提供起始点。一旦有了初始上下文,就可以使用它来查找其他上下文和对象。

JNDI 为可能在执行命名和目录操作期间抛出的异常定义了一个类层次。此类层次的根是 NamingException。需要处理特定异常的程序可页漏迎以捕获相应的异常子类。否则,这些程序应该捕获 NamingException。

以下文档可以在 Java 技术站点巴颂请找到:

JNDI API Document (Postscript)

JNDI API Document (PDF)

有关教程、示例和概述,请参阅:

The JNDI Tutorial

Examples

Executive Summary (Postscript)

Executive Summary (PDF)

从以下版本开始:

1.3