Skip navigation links
Java™ Platform
Standard Ed. 8

Package org.omg.CosNaming

为Java IDL提供命名服务。

See: 描述

Package org.omg.CosNaming Description

为Java IDL提供命名服务。 对象请求代理守护程序(ORBD)还包括暂时和持久命名服务。

软件包及其所有类和接口是通过在文件nameservice.idl上运行工具idlj ,该文件nameservice.idl OMG IDL编写的模块。

包装规格

有关Java [tm] Platform,Standard Edition 6,ORB符合的官方规范支持部分的精确列表,请参阅Official Specifications for CORBA support in Java[tm] SE 6

接口

org.omg.CosNaming包含两个公共接口和几个辅助类。

接口是:

这两个接口提供绑定/取消绑定名称和对象引用,检索绑定对象引用以及遍历绑定列表的方法。 NamingContext接口提供了命名服务的主要功能, BindingIterator提供了一种迭代名称/对象引用绑定列表的方法。

辅助课

为了将OMG IDL接口映射到Java编程语言,idlj编译器创建可以被认为是辅助类的Java类。 此处包含由接口NamingContextBindingIterator使用的生成的辅助类的注释。

NamingContextBindingIterator使用的BindingIterator

以下是命名服务使用的类。 (帮助者和持有者类,为这里列出的每个类生成,将在下面讨论。)

持有人类

OMG IDL使用OUT和INOUT参数从操作返回值。 没有OUT和INOUT参数的Java编程语言的映射为每个类型创建一个称为持有者类的特殊类。 可以将持有人类的实例作为参数传递给Java方法,并将值分配给其value字段。 这允许它执行OUT或INOUT参数的功能。

为包org.omg.CosNaming以下持有人类别:

需要注意的是,在org.omg.CORBA包,则每个基本Java类型的holder类: IntHolderShortHolderStringHolder ,等等。

还需要注意的是有一个NameHolder即使没有课Name类; 同样,还有一个BindingListHolder即使没有课BindingList类。 这是真的,因为在OMG IDL界面中, NameBindingList都是typedef 没有从IDL typedef到Java构造的映射,但是如果typedef用于序列或数组,则会生成typedef类。 由于映射到Java编程语言, NameNameComponent对象的数组,而BindingListBinding对象的数组。 所有持有者类至少有两个构造函数和一个字段:

用户定义类型(Java类)的持有者类具有三种方法,但应用程序开发人员不直接使用它们。

助手班

为OMG IDL接口中的所有用户定义类型生成的助手类提供了处理这些类型所需的静态方法。

应用程序员使用的辅助类中只有一种方法:方法narrow 只有从IDL接口映射的Java接口将有一个助手类,其中包含一个narrow方法,所以在CosNaming包中,只有类NamingContextHelperBindingIteratorHelper具有narrow方法。

套餐org.omg.CosNaming.NamingContextPackage

该包为包org.omg.CosNaming中使用的org.omg.CosNaming以及NotFoundReason类提供了助手和持有NotFoundReason ,这提供了异常NotFound的原因。

Helper和Holder课程有以下例外:

命名服务兼容性

Sun的贯彻CosNaming包装与OMG符合COSNaming规范。 换句话说,Sun的命名服务中的API是根据OMG提供的命名服务的指导来实现的。 因此,如果第三方供应商实施符合OMG的命名服务,则可以在Sun的CosNaming CosNaming与第三方供应商的实施之间切换。 然而,重要的是要明白,不同的供应商实现命名服务的方式可能会有很小的变化,例如异常字符串的差异。

使用第三方命名服务的说明

虽然我们鼓励使用来自一个供应商的ORB和ORB服务,但可以使用Sun的RMI-IIOP ORB插入第三方的COSNaming实现。 以下是以下步骤:
  1. 为Bootstrap服务器创建一个属性文件,并给它两个条目。 例如,您可以将此属性文件/tmp/services ,并将以下内容放入其中: NameService, <Stringified IOR of the Root Naming Context>

    这将使NameService与要使用的NameService实现的根命名上下文相关CosNaming

  2. 使用以下命令启动独立Bootstrap服务器:
       java -classpath $(CLASSPATH) com.sun.corba.ee.internal.CosNaming.BootstrapServer -InitialServicesFile "/tmp/services" [-ORBInitialPort port]  

    请注意,命令结尾处的方括号表示指定端口号是可选的。

现在当应用程序调用方法org.omg.CORBA.ORB.resolve_initial_references时,CORBA进程将联系引导服务器以获取根命名上下文。

包装规格

相关文档

有关如何使用CosNaming API的概述和示例,请参阅:

有关Java IDL的概述,请参阅:

从以下版本开始:
JDK1.3
Skip navigation links
Java™ Platform
Standard Ed. 8