请参见:
描述
接口摘要 | |
---|---|
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 概述,请参阅: