|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个软件包 下一个软件包 | 框架 无框架 | |||||||||
请参见:
描述
| 接口摘要 | |
|---|---|
| BindingIterator | BindingIterator 接口允许客户端使用 next_one 或 next_n 迭代绑定。 |
| BindingIteratorOperations | BindingIterator 接口允许客户端使用 next_one 或 next_n 迭代绑定。 |
| NamingContext | 命名上下文是包含一组名称绑定的对象,在这些名称绑定中,每个名称都是唯一的。 |
| NamingContextExt | NamingContextExt 是 NamingContext(它包含一组名称绑定,在这些名称绑定中,每个名称都是唯一的)的扩展,并且是互操作命名服务 (Interoperable Naming Service) 的一部分。 |
| NamingContextExtOperations | NamingContextExt 是 NamingContext(它包含一组名称绑定,在这些名称绑定中,每个名称都是唯一的)的扩展,并且是互操作命名服务 (Interoperable Naming Service) 的一部分。 |
| NamingContextOperations | 命名上下文是包含一组名称绑定的对象,在这些名称绑定中,每个名称都是唯一的。 |
| 类摘要 | |
|---|---|
| _BindingIteratorImplBase | |
| _BindingIteratorStub | BindingIterator 接口允许客户端使用 next_one 或 next_n 操作在绑定上进行迭代。 |
| _NamingContextExtStub | NamingContextExt 是 NamingContext(它包含一组名称绑定,在这些名称绑定中,每个名称都是唯一的)的扩展,并且是互操作命名服务 (Interoperable Naming Service) 的一部分。 |
| _NamingContextImplBase | |
| _NamingContextStub | 命名上下文是包含一组名称绑定的对象,在这些名称绑定中,每个名称都是唯一的。 |
| Binding | org/omg/CosNaming/Binding.java。 |
| BindingHelper | org/omg/CosNaming/BindingHelper.java。 |
| BindingHolder | org/omg/CosNaming/BindingHolder.java。 |
| BindingIteratorHelper | BindingIterator 接口允许客户端使用 next_one 或 next_n 操作迭代绑定。 |
| BindingIteratorHolder | BindingIterator 接口允许客户端使用 next_one 或 next_n 操作迭代绑定。 |
| BindingIteratorPOA | BindingIterator 接口允许客户端使用 next_one 或 next_n 操作迭代绑定。 |
| BindingListHelper | 绑定列表。 |
| BindingListHolder | 绑定列表。 |
| BindingType | 指定给定的绑定对应于对象(非命名上下文的对象)还是命名上下文。 |
| BindingTypeHelper | 指定给定的绑定对应于对象(非命名上下文的对象)还是命名上下文。 |
| BindingTypeHolder | 指定给定的绑定是对象(非命名上下文的对象)的还是命名上下文的。 |
| IstringHelper | org/omg/CosNaming/IstringHelper.java。 |
| NameComponent | org/omg/CosNaming/NameComponent.java。 |
| NameComponentHelper | org/omg/CosNaming/NameComponentHelper.java。 |
| NameComponentHolder | org/omg/CosNaming/NameComponentHolder.java。 |
| NameHelper | 名称是名称组件的序列。 |
| NameHolder | 名称是名称组件的序列。 |
| NamingContextExtHelper | NamingContextExt 是 NamingContext(它包含一组名称绑定,在这些名称绑定中,每个名称都是唯一的)的扩展,并且是互操作命名服务 (Interoperable Naming Service) 的一部分。 |
| NamingContextExtHolder | NamingContextExt 是 NamingContext(它包含一组名称绑定,在这些名称绑定中,每个名称都是唯一的)的扩展,并且是互操作命名服务 (Interoperable Naming Service) 的一部分。 |
| NamingContextExtPOA | NamingContextExt 是 NamingContext(它包含一组名称绑定,在这些名称绑定中,每个名称都是唯一的)的扩展,并且是互操作命名服务 (Interoperable Naming Service) 的一部分。 |
| NamingContextHelper | 命名上下文是包含一组名称绑定的对象,在这些名称绑定中,每个名称都是唯一的。 |
| NamingContextHolder | 命名上下文是包含一组名称绑定的对象,在这些名称绑定中,每个名称都是唯一的。 |
| NamingContextPOA | 命名上下文是包含一组名称绑定的对象,在这些名称绑定中,每个名称都是唯一的。 |
为 Java IDL 提供命名服务。对象请求代理守护程序(Object Request Broker Daemon,ORBD)还包括瞬态和持久命名服务。
该包及其所有类和接口都是通过在 nameservice.idl 文件上运行 idlj 工具生成的,该文件是用 OMG IDL 编写的模块。
有关 Java[tm] Platform, Standard Edition 6 ORB 遵守的官方规范的受支持部分的明确列表,请参阅 Official Specifications for CORBA support in Java[tm] SE 6。
这两个接口是:
这两个接口提供了一些方法,有些用来绑定/取消绑定名称和对象引用,有些用来检索绑定的对象引用,还有些用来迭代绑定列表。NamingContext 接口提供命名服务的主要功能,BindingIterator 提供迭代名称/对象引用绑定列表的各种方法。
NamingContext 和 BindingIterator 所使用的已生成辅助类的注释。
NamingContext 和 BindingIterator 所使用的类public final class NameComponent - 名称的构建块 (building block)。(名称被绑定到命名上下文中的对象引用。)
名称是一个或多个 NameComponent 对象所组成的数组。带有单个 NameComponent 的名称称为简单名称;带有多个 NameComponent 对象的名称称为组合名称。
NameComponent 对象由两个字段组成:
id - 用作标识符的 String
kind - 可用于任何描述性内容的 String。其重要性在于,可以使用它来描述对象,但不会影响到语法。例如,C 编程语言使用这样的语法约定:将扩展名 ".c" 附加到文件名上指示其为源代码文件。在 NameComponent 对象中,kind 字段可用于描述对象类型,而不是文件扩展名或其他语法约定。kind 字段值的示例如下:字符串 "c_source"、"object_code"、"executable"、"postscript" 和 ""。kind 字段为空字符串也很常见。
在名称中,每个 NameComponent 对象(除了最后一个)都表示一个 NamingContext 对象;最后一个 NameComponent 对象表示绑定的对象引用。这类似于路径名,路径名中最后一个名称是文件名,而前面的所有名称都是目录名。
public final class Binding - 将名称与对象引用或命名上下文关联的对象。Binding 对象具有两个字段:
binding_name - 表示绑定名称的一个或多个 NameComponent 对象所组成的数组
binding_type - BindingType 对象,该对象指示绑定发生在名称和对象引用之间,还是发生在名称和命名上下文之间
NamingContext 接口具有一些方法,其中有些用来绑定/取消绑定名称与对象引用或命名上下文,有些用来列举绑定,还有些用来解析绑定(给定名称时,resolve 方法返回绑定到它的对象引用)。
public final class BindingType - 一个对象,指定给定的 Binding 对象是名称与对象引用(即非命名上下文)之间的绑定还是名称与命名上下文之间的绑定。
BindingType 类由两个方法和四个常量组成。这些常量中有两个是 BindingType 对象,另外两个是 int。
BindingType 对象可以传递到 Binding 类的构造方法,也可以用作参数或返回值。这些 BindingType 对象是:
public static final BindingType nobject - 指示是与对象引用之间的绑定
public static final BindingType ncontext - 指示是与命名上下文之间的绑定
int 常量可以提供给 from_int 方法以创建 BindingType 对象,也可以作为 value 方法的返回值。这些常量是:
public static final int _nobject
public static final int _ncontext
from_int 方法带有的参数是 _nobject 或 _ncontext 之外的任何内容,则它将抛出异常 org.omg.CORBA.BAD_PARAM。
用法如下:
BindingType btObject = from_int(_nobject);
BindingType btContext = from_int(_ncontext);
btObject 变量引用 BindingType 对象,该对象初始化后表示一个与对象引用的绑定。btContext 变量引用 BindingType 对象,该对象初始化后表示一个与 NamingContex 对象的绑定。
value 方法返回 _nobject 或 _ncontext,因此在以下代码行中,变量 bt 将包含 _nobject 或 _ncontext:
int bt = BindingType.value();
value 字段分配值。这允许它执行 OUT 和 INOUT 参数的功能。
以下是为 org.omg.CosNaming 包生成的 holder 类:
NamingContextHolder
BindingIteratorHolder
BindingHolder
BindingListHolder
BindingTypeHolder
NameComponentHolder
NameHolder
注意,在 org.omg.CORBA 包中,每个基本 Java 类型都有一个 holder 类:IntHolder、ShortHolder、StringHolder,等等。
另请注意,即使不存在 Name 类,也会存在一个 NameHolder 类;类似地,即使不存在 BindingList 类,也会存在一个 BindingListHolder 类。出现这种现象是因为在 OMG IDL 接口中,Name 和 BindingList 都是 typedef。不存在从 IDL typedef 到 Java 结构的映射,但是如果 typedef 用于序列或数组,则会生成 holder 类。与映射到 Java 编程语言一样,Name 是 NameComponent 对象数组,BindingList 是 Binding 对象数组。
所有 holder 类都具有至少两个构造方法和一个字段:
value 字段 - 用作 OUT 或 INOUT 参数的类型的实例。例如,NamingContextHolder 的 value 字段将是一个 NamingContext 对象。
BindingHolder 对象的 value 字段将被设置为 null,因为此为对象的默认值。其他默认值有用于 boolean 的 false、用于数值和 char 类型的 0 和用于对象引用的 null。
value 字段的构造方法
为用户定义类型(Java 类)创建的 holder 类另外还有三种方法,但是应用程序开发人员不直接使用它们。
Helper 类中只有一种供应用程序员使用的方法。narrow 方法。只有从 IDL 接口映射的 Java 接口才具有包含 narrow 方法的 helper 类,因此在 CosNaming 包中,只有类 NamingContextHelper 和 BindingIteratorHelper 才具有 narrow 方法。
public static NamingContext narrow(org.omg.CORBA.Object obj) - 将给定的 CORBA 对象转换为 NamingContext 对象
public static BindingIterator narrow(org.omg.CORBA.Object obj) - 将给定的 CORBA 对象转换为 BindingIterator 对象
org.omg.CosNaming.NamingContextPackage 包org.omg.CosNaming 包中使用的异常以及 NotFoundReason 类(为 NotFound 异常提供原因)提供 Helper 和 Holder 类。
为以下异常提供 Helper 和 Holder 类:
AlreadyBound
CannotProceed
InvalidName
NotEmpty
NotFound
CosNaming 包的实现遵守 OMG COSNaming 规范。换句话说,Sun 命名服务中的 API 根据 OMG 提供的命名服务指南实现。因此,如果第三方供应商已实现与 OMG 兼容的命名服务,则可以在 Sun 的 CosNaming 实现和第三方供应商的实现之间切换。然而,不同供应商实现命名服务的方式可能稍有不同(如异常字符串不同),理解这一点很重要。
COSNaming 实现也是可能的。以下是要执行的步骤:
/tmp/services,并将以下内容置于其中:NameService, <Stringified IOR of the Root Naming Context>。
此操作将 NameService 与要使用的 CosNaming 实现的根命名上下文 (Root Naming Context) 相关联。
java -classpath $(CLASSPATH)
com.sun.corba.ee.internal.CosNaming.BootstrapServer -InitialServicesFile
"/tmp/services" [-ORBInitialPort port]
注意,位于命令末尾的方括号指示指定一个可选的端口号。
这时,如果应用程序调用 org.omg.CORBA.ORB.resolve_initial_references 方法,则 CORBA 进程将联系 Bootstrap 服务器来获取根命名上下文。
CosNaming API 的概述和示例,请参阅:
有关 Java IDL 概述,请参阅:
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个软件包 下一个软件包 | 框架 无框架 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。