Package org.omg.CORBA
ORB
类,它被实现为使得程序员可以将其用作全功能对象请求代理(ORB)。
有关Java TM平台(Standard Edition 6)符合的官方CORBA规范支持部分的精确列表,请参阅Official Specifications for CORBA support in Java[TM] SE 6 。
一般信息
本节中的信息是与编辑界面定义语言(IDL)文件并使用ORB编写客户端和服务器的人相关的信息。 本节中描述的类和接口可以分为四组: ORB classes
,异常, Helper
类和Holder
类。
ORB
课
ORB在客户端和方法在服务器上的实现之间处理(或经纪人)方法调用。 因为客户端和服务器可能在网络上的任何地方,并且由于调用和实现可能用不同的编程语言编写,所以ORB在后台进行大量的工作来完成此通信。
ORB的大部分功能对用户来说都是完全透明的, CORBA
软件包的主要部分是ORB在幕后使用的类。 结果是大多数程序员只能直接使用这个包的一小部分。 实际上,大多数程序员将仅使用ORB
类中的几种方法,一些例外,有时候也是持有者类。
ORB
方法
在应用程序进入CORBA环境之前,必须首先:
- 被初始化为ORB和可能的对象适配器(POA)环境。
- 获取对ORB对象的引用(用于将来的ORB操作)以及其他对象(包括根POA或一些对象适配器对象)。
提供以下操作来初始化应用程序并获取适当的对象引用:
- 提供对ORB的访问的操作,这将在本节中讨论。
- 提供对对象适配器,接口存储库,命名服务和其他对象服务的访问的操作。 这些操作在Other Classes中进行了描述。
当应用程序需要CORBA环境时,它需要一种获取ORB对象引用和可能的OA对象引用(例如根POA)的机制。 这有两个目的。 首先,它将应用程序初始化到ORB和OA环境中。 其次,它将ORB对象引用和OA对象引用返回到应用程序,以供将来的ORB和OA操作使用。
为了获得ORB对象引用,应用程序调用ORB.init
操作。 呼叫的参数可以包括需要对象引用的ORB的标识符,以及用于允许环境特定数据被传递到呼叫中的arg_list。
这些是提供对ORB的访问的ORB
方法:
-
init()
-
init(String [] args, Properties props)
-
init(Applet app, Properties props)
使用init()
方法不带参数启动一个单ORB,它只能给类型代码创建any
在由辅助类生成的代码所需要小号idlj
。
应用程序需要一种便携式手段来获取其初始对象引用。 根POA,POA Current,Interface Repository和各种对象服务实例需要引用。 应用程序所需的功能类似于命名服务提供的功能。 但是,OMG不希望将命名服务提供给所有应用程序,以便可以对其进行可移植的初始化。 因此,本节中显示的操作提供了简化的本地版本的命名服务,应用程序可以使用它来获取对其操作至关重要的小型定义的对象引用集。 因为只有一个很好的定义对象集合才能使用这种机制,所以命名上下文可以被平坦化成单级名称空间。 这种简化导致仅定义了两个操作来实现所需的功能。
初始引用通过ORB对象接口中提供的两个操作获得,提供列出和解析初始对象引用的功能。 这些是:
-
resolve_initial_references(String name)
-
list_initial_services()
-
register_initial_reference(String id, org.omg.CORBA.Object obj)
使用以下某些方法的示例是Getting Started with Java IDL 。
例外
Java IDL中的异常与使用Java编程语言编写的任何代码类似。 如果一个方法被定义为抛出异常,然后使用该方法的任何代码必须有一个try
/ catch
块和处理该异常,当它被抛出。
关于Java IDL exceptions的文档有更多的信息,并解释了系统异常和用户定义的异常之间的区别。
以下是java.lang.RuntimeException
中定义的系统异常(未经检查通过 org.omg.CORBA.SystemException
从java.lang.RuntimeException
继承的异常)的org.omg.CORBA
:
BAD_CONTEXT BAD_INV_ORDER BAD_OPERATION BAD_PARAM BAD_TYPECODE COMM_FAILURE DATA_CONVERSION FREE_MEM IMP_LIMIT INITIALIZE INTERNAL INTF_REPOS INVALID_TRANSACTION INV_FLAG INV_IDENT INV_OBJREF INV_POLICY MARSHAL NO_IMPLEMENT NO_MEMORY NO_PERMISSION NO_RESOURCES NO_RESPONSE OBJECT_NOT_EXIST OBJ_ADAPTER PERSIST_STORE TRANSACTION_REQUIRED TRANSACTION_ROLLEDBACK TRANSIENT UNKNOWN
以下是包装org.omg.CORBA
定义的用户定义异常的列表。
Bounds UnknownUserException WrongTransaction PolicyError
子包
CORBA
包中有一些包, CORBA
包是“包”,作为其名称的一部分。
这些软件包通常是相当小的,因为它们所做的一切只是提供CORBA
软件包中的接口和类使用的异常或类。
例如,包 org.omg.CORBA.TypeCodePackage
包含TypeCode
类中的方法抛出的两个异常。 这些例外是:
-
BadKind
-
Bounds
org.omg.CORBA.ORBPackage
包含两个例外:
-
InvalidName
-
InconsistentTypeCode
另一个包是CORBA
的子包是portable
包。 它提供了一组ORB API,使得一个供应商的IDL编译器生成的代码可以在另一个供应商的ORB上运行。
持有人类
支持out和inout参数传递模式需要使用额外的holder classes 。 由于Java编程语言不支持out或inout参数,因此需要持有者类作为传递可修改参数的方法。 为了支持便携式存根和骨架,支架类还实现了org.omg.CORBA.portable.Streamable
接口。
持有人类通过将“持有人”附加到类型的名称来命名。 该类型的名称指的是其Java编程语言中的名称。 例如,对于命名的接口holder类Account
Java编程语言将被命名为AccountHolder
。
org.omg.CORBA
包中的所有基本IDL数据类型都支持持有org.omg.CORBA
。 因此,举例来说,目前已经定义的类LongHolder
, ShortHolder
, FloatHolder
,等等。 除了由typedefs
定义的所有用户定义的IDL类型之外,还会生成类。 (请注意,在本文中,用户定义包括在OMG规范中定义的类型,例如Interface Repository和其他OMG服务的类型。)
每个持有人类有:
- 一个实例的构造函数
- 一个默认构造函数
- 一个公共实例成员,
value
这是打字值。 - 一种读取输入流并将内容分配给类型的
value
字段的方法 - 一种将
value
字段的值写入输出流的方法 - 一种获取类型代码的方法
默认构造函数将值字段设置为由Java语言定义的类型的默认值:
-
false
的布尔值 -
0
用于数字和字符类型 -
null
用于字符串和对象引用
例如,如果将OMG IDL中定义的接口Account
映射到Java编程语言,则将生成以下持有人类:
public final class AccountHolder implements
org.omg.CORBA.portable.Streamable
{
// field that holds an Account object
public Account value = null;
// default constructor
public AccountHolder ()
{
}
// creates a new AccountHolder from initialValue
public AccountHolder (Account initialValue)
{
value = initialValue;
}
// reads the contents of i and assigns the contents to value
public void _read (org.omg.CORBA.portable.InputStream i)
{
value = AccountHelper.read (i);
}
// writes value to o
public void _write (org.omg.CORBA.portable.OutputStream o)
{
AccountHelper.write (o, value);
}
// returns the typecode for Account
public org.omg.CORBA.TypeCode _type ()
{
return AccountHelper.type ();
}
}
有关Holder类的更多信息,请参阅OMG IDL to Java Language Mapping中的第1.4章“基本类型映射 ”。 包org.omg.CORBA
中定义的持有人类别是:
AnyHolder AnySeqHolder BooleanHolder BooleanSeqHolder ByteHolder CharHolder CharSeqHolder CurrentHolder DoubleHolder DoubleSeqHolder FixedHolder FloatHolder FloatSeqHolder IntHolder LongHolder LongLongSeqHolder LongSeqHolder ObjectHolder OctetSeqHolder ParameterModeHolder PolicyErrorHolder PolicyListHolder PrincipalHolder ServiceInformationHolder ShortHolder ShortSeqHolder StringHolder StringSeqHolder TypeCodeHolder ULongLongSeqHolder ULongSeqHolder UnknownUserExceptionHolder UShortSeqHolder ValueBaseHolder WCharSeqHolder WrongTransactionHolder WStringSeqHolder
助手班
助手文件提供了几种处理类型所需的静态方法。 这些包括:
-
Any
插入和提取类型的操作 - 获取存储库ID
- 得到类型代码
- 从流读取和写入类型
- 实现
ValueHelper
接口(如果是用户定义的值类型)
映射IDL接口或抽象接口的帮助类也包括窄操作。 静态窄方法允许将org.omg.CORBA.Object
缩小为更具体类型的对象引用。 如果由于对象引用不支持所请求的类型而导致的narrow失败,则抛出IDL异常CORBA.BAD_PARAM
。 引起不同的系统异常以指示其他种类的错误。 尝试缩小null
将始终成功,返回值为null
。 通常,应用程序员使用的唯一辅助方法是narrow
方法。 其他方法通常在幕后使用,对程序员是透明的。
助手课分为两大类: helpers for value types和helpers for non value types 。 因为一个类别中的所有帮助类都提供相同的方法,所以在这里给出了每类帮助类的一个通用说明。
当OMG IDL被映射到Java编程语言时,为每个用户定义的类型生成一个“帮助”类。 该生成的类将具有附加后缀Helper
的用户定义类型的名称。 例如,如果接口Account
在OMG IDL中定义,则idlj
编译器将自动生成一个名为AccountHelper
的类。 AccountHelper
类将包含操作类型实例所需的静态方法,在这种情况下为Account
对象。
narrow
方法
当一个对象是方法的返回值时,它将以通用对象的形式返回,或者是一个org.omg.CORBA.Object
对象或一个java.lang.Object
对象。
必须将该对象转换为更具体的类型才能操作。
例如, Account
对象将作为通用对象返回,并且必须缩小为Account
对象,以便可以调用Account
方法。
narrow
方法有两种形式,一种是org.omg.CORBA.Object
对象,一种是java.lang.Object
对象。 接口是抽象的还是narrow
它的助手类将提供哪种narrow
方法。 不是抽象的接口的助手类将具有一个narrow
方法,该方法使用CORBA对象,而抽象的接口的narrow
方法将采用Java编程语言中的对象。 具有至少一个抽象基础接口的非抽象接口的帮助类将提供narrow
方法的两个版本。
Hello World tutorial使用narrow
方法,如下所示:
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// get the root naming context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
// Use NamingContextExt instead of NamingContext. This is
// part of latest Inter-Operable naming Service.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
// resolve the Object Reference in Naming
String name = "Hello";
helloImpl = HelloHelper.narrow(ncRef.resolve_str(name));
基本助手类的示例
为了解释这个目的,一个基本的助手类是一个由每个帮助类提供的方法,另外一个narrow
方法,如果在OMG IDL中定义的类型映射到Java编程语言的接口。
不是类型的类型将为它们生成一个基本的帮助类。
例如,假设接口Account
不是值类型IDL类型,也不是抽象接口,没有抽象的基本接口,它的AccountHelper
类将如下所示:
abstract public class AccountHelper
{
private static String _id = "IDL:Account:1.0";
// inserts an Account object into an Any object
public static void insert (org.omg.CORBA.Any a, Account that)
{
org.omg.CORBA.portable.OutputStream out = a.create_output_stream ();
a.type (type ());
write (out, that);
a.read_value (out.create_input_stream (), type ());
}
// extracts an Account object from an Any object
public static Account extract (org.omg.CORBA.Any a)
{
return read (a.create_input_stream ());
}
private static org.omg.CORBA.TypeCode __typeCode = null;
// gets the typecode for this type
synchronized public static org.omg.CORBA.TypeCode type ()
{
if (__typeCode == null)
{
__typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (AccountHelper.id (), "Account");
}
return __typeCode;
}
// gets the repository id for this type
public static String id ()
{
return _id;
}
// reads an Account object from an input stream
public static Account read (org.omg.CORBA.portable.InputStream istream)
{
return narrow (istream.read_Object (_AccountStub.class));
}
// writes an Account object to an outputstream
public static void write (org.omg.CORBA.portable.OutputStream ostream, Account value)
{
ostream.write_Object ((org.omg.CORBA.Object) value);
}
// converts (narrows) an Object to an Account object
public static Account narrow (org.omg.CORBA.Object obj)
{
if (obj == null)
return null;
else if (obj instanceof Account)
return (Account)obj;
else if (!obj._is_a (id ()))
throw new org.omg.CORBA.BAD_PARAM ();
else
{
org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate ();
_AccountStub stub = new _AccountStub ();
stub._set_delegate(delegate);
return stub;
}
}
}
值类型助手类
值类型的帮助类包括为非值类型方法生成的相同方法的不同渲染。 主要区别在于值类型是可以通过值作为参数或方法的返回值传递的类型,这意味着它们必须是可序列化的。 假设Address
是一个值类型, AddressHelper
类将如下所示:
abstract public class AddressHelper
{
private static String _id = "IDL:Address:1.0";
// same as for non-value type
public static void insert (org.omg.CORBA.Any a, Address that)
{
org.omg.CORBA.portable.OutputStream out = a.create_output_stream ();
a.type (type ());
write (out, that);
a.read_value (out.create_input_stream (), type ());
}
// same as for non-value type
public static Address extract (org.omg.CORBA.Any a)
{
return read (a.create_input_stream ());
}
private static org.omg.CORBA.TypeCode __typeCode = null;
private static boolean __active = false;
// getting the typecode for the type
synchronized public static org.omg.CORBA.TypeCode type ()
{
if (__typeCode == null)
{
synchronized (org.omg.CORBA.TypeCode.class)
{
if (__typeCode == null)
{
if (__active)
{
return org.omg.CORBA.ORB.init().create_recursive_tc ( _id );
}
__active = true;
org.omg.CORBA.ValueMember[] _members0 = new org.omg.CORBA.ValueMember[0];
org.omg.CORBA.TypeCode _tcOf_members0 = null;
__typeCode = org.omg.CORBA.ORB.init ().create_value_tc (_id, "Address", org.omg.CORBA.VM_NONE.value, null, _members0);
__active = false;
}
}
}
return __typeCode;
}
// same as for non-value type
public static String id ()
{
return _id;
}
// reads a serializable instance of Address from the given input stream
public static Address read (org.omg.CORBA.portable.InputStream istream)
{
return (Address)((org.omg.CORBA_2_3.portable.InputStream) istream).read_value (id ());
}
// writes a serializable instance of Address to the given output stream
public static void write (org.omg.CORBA.portable.OutputStream ostream, Address value)
{
((org.omg.CORBA_2_3.portable.OutputStream) ostream).write_value (value, id ());
}
}
包org.omg.CORBA
中定义的助手类是:
AnySeqHelper BooleanSeqHelper CharSeqHelper CompletionStatusHelper CurrentHelper DefinitionKindHelper DoubleSeqHelper FieldNameHelper FloatSeqHelper IdentifierHelper IDLTypeHelper LongLongSeqHelper LongSeqHelper NameValuePairHelper ObjectHelper OctetSeqHelper ParameterModeHelper PolicyErrorCodeHelper PolicyErrorHelper PolicyHelper PolicyListHelper PolicyTypeHelper RepositoryIdHelper ServiceDetailHelper ServiceInformationHelper SetOverrideTypeHelper ShortSeqHelper StringSeqHelper StringValueHelper StructMemberHelper ULongLongSeqHelper ULongSeqHelper UnionMemberHelper UnknownUserExceptionHelper UShortSeqHelper ValueBaseHelper ValueMemberHelper VersionSpecHelper VisibilityHelper WCharSeqHelper WrongTransactionHelper WStringSeqHelper WStringValueHelper
其他类
CORBA
软件包中的其他类和接口,在幕后使用,可以分为四组。
其中三个组用于具有某种能力的请求,第四组关于Interface Repository本身就是一个类别。
ORB创建的类
第一组包含由ORB创建并包含在请求操作中使用的信息的类。-
TCKind
- 表示TypeCode
对象的种类(数据类型) -
TypeCode
- 表示数据类型和可能的其他信息 -
Any
- 包含一个值及其类型代码 -
NamedValue
- 包含一个名称,一个Any
对象和一个参数模式标志。NamedValue
对象包含有关方法参数,方法返回值或上下文的信息。 -
ContextList
- 描述需要通过调用解析和发送的上下文的字符串列表 -
ExceptionList
- 可能由方法抛出的异常的TypeCode
的列表 -
Environment
- 在方法调用期间抛出的异常的容器 -
Context
- 用于将辅助信息从客户端传递到服务器的NamedValue
对象的列表 -
NVList
- 一个NamedValue
对象的列表,用于传递参数或获取结果
处理请求的类
第二类课程涉及要求:-
Object
- 所有CORBA对象引用的基类 -
Request
- DII中的主类,其中包含用于向请求添加参数的方法,用于访问有关正在调用的方法的信息(方法名称,其参数,它们抛出的异常等),并进行调用请求 -
DynamicImplementation
- 使用DSI的服务器实现的基类。 它具有方法invoke
,由该类的实现用于确定ServerRequest
对象的状态并设置其结果或异常 -
ServerRequest
- 捕获动态骨架接口请求的显式状态
作为常量的接口
第三组包含用作常量的接口。 IDL到Java映射要求将IDL枚举映射到Java类,枚举值表示为该类中的public static final字段(例如DefinitionKind)。 另一方面,IDL接口外部定义的IDL常量映射到每个常量的Java接口。 这就是为什么org.omg.CORBA
包中的几个接口由一个字段value
,它是一个short
。 此字段是用于诸如错误代码或值修饰符之类的常量。 例如,界面BAD_POLICY
的value
字段是抛出PolicyError
异常的可能原因之一。 要指定此错误代码,您将使用BAD_POLICY.value
。
异常PolicyError
使用以下接口的value
字段作为其可能的错误代码。
-
BAD_POLICY
-
BAD_POLICY_TYPE
-
BAD_POLICY_VALUE
-
UNSUPPORTED_POLICY
-
UNSUPPORTED_POLICY_VALUE
TypeCode.type_modifier
返回以下接口之一的value
字段。
这些接口的名称中的VM
代表“值修饰符”。
-
VM_NONE
-
VM_ABSTRACT
-
VM_CUSTOM
-
VM_TRUNCATABLE
ValueMember
对象的访问方法来表示的知名度ValueMember
对象。
-
PRIVATE_MEMBER
-
PUBLIC_MEMBER
NamedValue
对象或作为方法的参数,在以下接口中定义:
-
ARG_IN
-
ARG_INOUT
-
ARG_OUT
-
CTX_RESTRICT_SCOPE
接口存储库接口和类
第四组包含由OMG IDL接口ir.idl
的idlj
编译器生成的Interface Repository接口和类。
Interface Repository的目的是识别存储在其中的接口,以便它们可被ORB访问。
Interface Repository API完全描述了每个模块,类型,接口,属性,操作,参数,异常,常量等。
ORB不要求有一个接口存储库,Java IDL不包含一个。 即使此版本不包括接口存储库的实现,为了创建类型代码,已经包括以下IR类和接口(请参阅org.omg.CORBA.ORB接口中的create_value_tc,create_struct_tc,create_union_tc和create_exception_tc方法):
- IRObject
- IDLType
- DefinitionKind
- StructMember
- UnionMember
- ValueMember
相关文档
有关概述,指南和教程,请参阅:Java IDL中未实现CORBA功能
org.omg
子包中包含的一些API是为符合当前的OMG CORBA规范而提供的,但在Sun的JDK“¢”版本中未实现。 这使得其他JDK许可证持有者可以在标准扩展和产品中提供此API的实现。
特征抛出NO_IMPLEMENT
由于种种原因, org.omg
子包中的一些API引发了NO_IMPLEMENT
异常。 其中包括:
- 在某些情况下,例如
LocalObject
,根据规范的完整实现表明这些API应该抛出NO_IMPLEMENT
。 - 在大多数情况下,例如
ORB.java
中的方法,抛出NO_IMPLEMENT
方法实际上是在ORB代码中其他地方的子类中实现的。 - 在某些情况下,例如
_get_interface_def()
和_get_interface
,API真的还没有实现。
此版本中未实现的功能或API概述
- 接口存储库。 Java IDL的正常操作不需要Interface Repository。
- Java IDL不支持
long double
。 - 政策(
org.omg.CORBA.Policy
)及其获取方法尚未实施。 - 域管理员(
org.omg.CORBA.DomainManager
)及其获取方法尚未实施。 - 服务信息
org.omg.CORBA.ServiceInformation
和ORB方法public boolean get_service_information(short service_type, ServiceInformationHolder service_info)
未实现。 - 支持
perform_work
ORB方法(work_pending
)未实现。 - IDL上下文。
软件包中的未实现特性的具体列表org.omg.CORBA
包中的未实现方法org.omg.CORBA
:
-
ORB
-
public org.omg.CORBA.Policy create_policy(int type, org.omg.CORBA.Any val)
-
public void perform_work()
-
public boolean work_pending()
-
public org.omg.CORBA.Current get_current()
-
create_operation_list
-
get_default_context
-
get_service_information
- 过时
DynAnys
(弃用赞成DynamicAny
包)
-
- 从以下版本开始:
- JDK1.2
-
接口摘要 接口 描述 ARG_IN 表示调用的“input”参数,这意味着参数正在从客户机传递到服务器。ARG_INOUT 在调用中表示用于输入和输出的参数,这意味着该参数是从客户端传递到服务器,然后从服务器传回到客户端。ARG_OUT 一个常量,表示一个调用的“输出”参数,意味着该参数正在从服务器传递给客户端。BAD_POLICY APolicyErrorCode
将填写PolicyError
例外。BAD_POLICY_TYPE APolicyErrorCode
将填写PolicyError
例外。BAD_POLICY_VALUE 包含用于指示对ORB类中定义的create_policy
方法的调用中有效策略类型不正确的策略值的值。CTX_RESTRICT_SCOPE 一个标志,可以用作方法Context.get_values
的第二个参数来限制搜索范围。Current 从Current
接口派生的接口使得ORB和CORBA服务可以访问与运行线程相关联的信息(上下文)。CurrentOperations 接口为Current
。CustomMarshal 意图由ORB使用的抽象值类型,而不是用户。DataInputStream 定义用于从输入流读取原始数据类型的方法,以解除对自定义值类型的调整。DataOutputStream 定义用于将原始数据类型写入到编组自定义值类型的输出流中的方法。DomainManager 提供建立和导航关系到上级和下级域以及创建和访问策略的机制。DomainManagerOperations 提供DomainManager
访问策略的方法。DynAny Deprecated. 使用新的DynAny代替DynArray Deprecated. 改用新的DynArrayDynEnum Deprecated. 使用新的DynEnum代替DynFixed Deprecated. 改用新的DynFixedDynSequence Deprecated. 改用新的DynSequenceDynStruct Deprecated. 改用新的DynStructDynUnion Deprecated. 改用新的DynUnionDynValue Deprecated. 使用新的DynValue代替IDLType 由代表OMG IDL类型的所有Interface Repository(IR)对象继承的抽象接口。IDLTypeOperations 该接口必须由所有IDLType对象实现。IRObject IRObject IDL接口代表所有其他接口存储库接口派生的最通用接口,即使是Repository本身。IRObjectOperations 这是IRObject
的映射操作界面。Object CORBA对象引用的定义。OMGVMCID 为OMG保留的供应商次要代码ID。Policy 从Policy
接口派生的接口允许ORB或CORBA服务访问影响其操作的某些选择。PolicyOperations 提供Policy
对象的操作。PRIVATE_MEMBER 在ValueMember
类中定义一个私有成员的ValueMember
。PUBLIC_MEMBER 在ValueMember
课程中定义公共成员的ValueMember
。UNSUPPORTED_POLICY 其中的PolicyErrorCode
S的将被填补,如果被请求Policy
了解由ORB认为是有效的,但目前还不支持。UNSUPPORTED_POLICY_VALUE 如果PolicyErrorCode
所请求的值为有效类型且在该类型的有效范围内,则将填充Policy
,但此值不受支持。VM_ABSTRACT 定义用于在类型代码中表示抽象接口的代码。VM_CUSTOM 定义用于在类型代码中表示自定义编组值类型的代码。VM_NONE 定义用于表示类型代码中值类型值的代码。VM_TRUNCATABLE 定义用于在类型代码中表示可截断值类型的代码。 -
类摘要 Class 描述 _IDLTypeStub 存根为IDLType
。_PolicyStub 存根Policy
。Any 作为可以在IDL或任何IDL原语类型中描述的任何数据的容器。AnyHolder 持有人Any
。AnySeqHelper 助手AnySeq
。AnySeqHolder 持有人AnySeq
。BooleanHolder 持有人Boolean
。BooleanSeqHelper 助手BooleanSeq
。BooleanSeqHolder 持有人BooleanSeq
。BoundsHelper 这个Helper类用于方便编组Bounds
。ByteHolder 持有人Byte
。CharHolder 持有人Char
。CharSeqHelper 助手CharSeq
。CharSeqHolder 持有人CharSeq
。CompletionStatus 指示当抛出SystemException
时方法是否已完成运行的对象。CompletionStatusHelper 助手为CompletionStatus
。Context 在Request
操作中使用的对象,用于指定上下文对象,在上下文对象中,上下文字符串必须在与请求调用一起发送之前解决。ContextList 包含表示属性名称的String
对象的可修改列表的对象。CurrentHelper 助手为Current
。CurrentHolder 持有人Current
。DefinitionKind 提供用于标识Interface Repository对象类型的常量的类。DefinitionKindHelper 助手为DefinitionKind
。DoubleHolder 持有人Double
。DoubleSeqHelper 助手DoubleSeq
。DoubleSeqHolder 持有人DoubleSeq
。DynamicImplementation Deprecated. org.omg.CORBA.DynamicImplementationEnvironment 用于异常的容器(持有人),用于在Request
操作中使异常可用于客户端。ExceptionList 在Request
操作中使用的对象来描述方法可以抛出的异常。FieldNameHelper 助手FieldName
。FixedHolder 持有人Fixed
。FloatHolder 持有人Float
。FloatSeqHelper 助手FloatSeq
。FloatSeqHolder 持有人FloatSeq
。IdentifierHelper 助手Identifier
。IDLTypeHelper 助手IDLType
。IntHolder 持有人Int
。LocalObject 用作在Java语言映射中实现本地IDL接口的基类。LongHolder 持有人Long
。LongLongSeqHelper 助手LongLongSeq
。LongLongSeqHolder 持有人LongLongSeq
。LongSeqHelper 助手LongSeqHelper
。LongSeqHolder 持有人LongSeq
。NamedValue DII和DSI中使用的对象来描述参数和返回值。NameValuePair 将名称与作为IDL结构体的属性的值相关联,并在DynStruct
API中使用。NameValuePairHelper 助手NameValuePair
。NVList 包含NamedValue
对象的可修改列表。ObjectHelper ObjectHolder 持有人Object
。OctetSeqHelper 助手OctetSeq
。OctetSeqHolder 持有人OctetSeq
。ORB 一个为CORBA对象请求代理功能提供API的类。ParameterMode 枚举参数的参数模式。ParameterModeHelper 枚举参数的参数模式。ParameterModeHolder 枚举参数的参数模式。PolicyErrorCodeHelper 封装“策略”可能无效的原因。PolicyErrorHelper 抛出指示参数值传递给ORB.create_policy
操作的问题。PolicyErrorHolder 抛出指示参数值传递给ORB.create_policy
操作的问题。PolicyHelper 助手Policy
。PolicyHolder 持有人Policy
。PolicyListHelper 助手PolicyList
。PolicyListHolder 持有人PolicyList
。PolicyTypeHelper 助手PolicyType
。Principal Deprecated. 被CORBA弃用2.2。PrincipalHolder Deprecated. 被CORBA弃用2.2。RepositoryIdHelper 助手为RepositoryId
。Request 包含调用方法所需信息的对象。ServerRequest 捕获动态骨架接口(DSI)请求的显式状态的对象。ServiceDetail 表示ORB服务的对象:其service_detail_type
字段包含ORB服务的类型,其service_detail
字段包含ORB服务的描述。ServiceDetailHelper ServiceInformation CORBA模块中的IDL结构,用于存储有关ORB实现中可用的CORBA服务的信息,并从ORB.get_service_information
方法获取。ServiceInformationHelper ServiceInformationHolder 持有人ServiceInformation
。SetOverrideType CORBA枚举
标记SET_OVERRIDE
和ADD_OVERRIDE
,其指示策略是否应替换Object
的现有策略或添加到它们。SetOverrideTypeHelper 助手SetOverrideType
。ShortHolder 持有人Short
。ShortSeqHelper 助手ShortSeqHelper
。ShortSeqHolder 持有人ShortSeq
。StringHolder 持有人String
。StringSeqHelper 一串字符串StringSeqHolder 一串字符串StringValueHelper 助手StringValue
。StructMember 描述了一种IDL的成员struct
在接口库,包括名称struct
构件,所述的类型struct
构件,和表示的IDL类型的typedefstruct
构件描述的struct
成员对象。StructMemberHelper 助手StructMember
。TCKind IDL枚举的Java映射TCKind
,它指定了一个TypeCode
对象的种类。TypeCode 有关特定CORBA数据类型的信息的容器。TypeCodeHolder 持有人TypeCode
。ULongLongSeqHelper 助手ULongLongSeq
。ULongLongSeqHolder 持有人ULongLongSeq
。ULongSeqHelper 助手ULongSeq
。ULongSeqHolder 持有人ULongSeq
。UnionMember IDL联盟成员的Interface Repository中的描述。UnionMemberHelper 助手UnionMember
。UnknownUserExceptionHelper 助手UnknownUserException
。UnknownUserExceptionHolder 持有人UnknownUserException
。UShortSeqHelper 助手UShortSeq
。UShortSeqHolder 持有人UShortSeq
。ValueBaseHelper ValueBaseHolder 持有人ValueBase
。ValueMember value
对象的成员的Interface Repository中的描述。ValueMemberHelper 助手ValueMember
。VersionSpecHelper 助手VersionSpec
。VisibilityHelper 助手Visibility
。WCharSeqHelper 助手WCharSeq
。WCharSeqHolder 持有人WCharSeq
。WrongTransactionHelper 助手WrongTransaction
。WrongTransactionHolder 持有人WrongTransaction
。WStringSeqHelper 一系列WStringsWStringSeqHolder 一系列WStringsWStringValueHelper org / omg / CORBA / WStringValueHelper.java由IDL到Java编译器(便携式)生成,从orb.idl版本“3.0”1999年5月31日22:27:30 GMT + 00:00类定义被修改,以符合以下OMG规范:ORB芯由CORBA 2.3.1所定义( formal/99-10-07 )IDL / Java语言映射中定义 ptc/00-01-08 -
异常摘要 异常 描述 ACTIVITY_COMPLETED 可能会在访问Activity上下文的任何方法上引发ACTIVITY_COMPLETED
系统异常。ACTIVITY_REQUIRED 对于需要活动上下文的任何方法,可能会引发ACTIVITY_REQUIRED
系统异常。BAD_CONTEXT 当客户端调用操作时抛出异常,但传递的上下文不包含操作所需的上下文值。BAD_INV_ORDER 这个异常表示调用者以错误的顺序调用了操作。BAD_OPERATION 当对象引用表示现有对象但该对象不支持被调用的操作时抛出异常。BAD_PARAM 传递给调用的参数超出范围或以其他方式被视为非法时引发的异常。BAD_QOS 当对象不能支持具有与其相关联的服务质量语义的调用参数所需的服务质量时,引发BAD_QOS
异常。BAD_TYPECODE 当ORB遇到格式错误的代码(例如,TCKind
的无效的类型代码)时抛出异常。Bounds 当参数不在方法尝试访问的对象的合法范围内时抛出用户异常。CODESET_INCOMPATIBLE 无论客户端和服务器本机代码集之间无法进行有意义的通信,都会引发此异常。COMM_FAILURE 在客户端发送请求后,服务器的回复已经返回到客户端之前,在进行中的通信丢失时发生异常。DATA_CONVERSION 如果ORB无法将封送的数据的表示形式转换为其本机表示形式,反之亦然,则会引发此异常。FREE_MEM ORB在尝试释放动态内存时失败,例如由于堆损坏或内存段被锁定而导致异常。IMP_LIMIT 此异常表示在ORB运行时间中超出了实施限制。INITIALIZE 当ORB在其初始化期间遇到故障(例如无法获取网络资源或检测到配置错误)时抛出异常。INTERNAL 此异常指示ORB中的内部故障,例如,如果ORB检测到其内部数据结构的损坏。INTF_REPOS 当ORB无法到达接口存储库或检测到与接口存储库相关的某些其他故障时引发异常。INV_FLAG 当一个无效标志传递给一个操作时(例如创建一个DII请求)时抛出异常。INV_IDENT 此异常表示IDL标识符在语法上无效。INV_OBJREF 此异常表示对象引用在内部格式错误。INV_POLICY 由于Policy
适用于特定调用的覆盖不兼容,因此无法进行调用时抛出标准异常。INVALID_ACTIVITY 如果事务或活动在与其挂起的环境不同的上下文中恢复,则可能会在“活动”或“事务服务”的恢复方法上引发INVALID_ACTIVITY
系统异常。INVALID_TRANSACTION 当请求携带无效的事务上下文时抛出异常。MARSHAL 来自网络的请求或回复在结构上是无效的。NO_IMPLEMENT 此异常表示即使已调用的操作存在(它具有IDL定义),也不存在该操作的实现。NO_MEMORY ORB运行时内存不足时抛出异常。NO_PERMISSION 调用失败时引发异常,因为调用者的权限不足。NO_RESOURCES 当ORB遇到一些一般资源限制时抛出异常。NO_RESPONSE 如果客户端尝试检索延迟同步调用的结果,但该请求的响应尚不可用,则会引发此异常。OBJ_ADAPTER 此异常通常表示管理不匹配,例如,服务器可能尝试以已经在使用的名称或对存储库未知的实现存储库注册自身。OBJECT_NOT_EXIST 每当执行对被删除对象的调用时,就会引发异常。PERSIST_STORE 此异常表示持续存储故障,例如,无法建立数据库连接或数据库损坏。PolicyError 发生策略错误时抛出的用户异常。REBIND REBIND
上升时电流有效RebindPolicy,具有NO_REBIND或NO_RECONNECT的值和上一个绑定的对象引用在消息LocateReply具有状态OBJECT_FORWARD或状态为LOCATION_FORWARD一个应答消息的调用。SystemException 所有CORBA标准异常的根类。TIMEOUT TIMEOUT
在没有交付和已经超过指定的生存时间段时被提出。TRANSACTION_MODE 如果检测到IOR中的InvocationPolicy与所选择的调用路径(即,直接或路由调用)之间的不匹配,则客户端ORB抛出CORBATRANSACTION_MODE
异常。TRANSACTION_REQUIRED 异常表示请求携带一个空事务上下文,但需要一个活动事务。TRANSACTION_ROLLEDBACK 与请求相关联的事务已经回滚或标记回滚时抛出异常。TRANSACTION_UNAVAILABLE 由于ORB与事务服务的连接异常终止,所以ORB无法处理事务服务上下文时抛出CORBATRANSACTION_UNAVAILABLE
异常。TRANSIENT 当ORB尝试到达对象并失败时抛出异常。UNKNOWN 如果操作实现抛出非CORBA异常(例如特定于实现的编程语言的异常),或者操作引发不在操作的引用表达式中出现的用户异常,则会引发此异常。UnknownUserException 包含服务器返回的用户异常的类。UserException CORBA IDL定义用户异常的根类。WrongTransaction CORBAWrongTransaction
用户定义的异常。