JavaTM Platform
Standard Ed. 6

������ org.omg.CORBA

�ṩ OMG CORBA API �� JavaTM ������Ե�ӳ�䣬���� ORB �࣬�����ʵ�ָ��࣬�����Ա����ʹ�ô�����Ϊȫ���ܶ������������Object Request Broker��ORB����

����
          ����

�ӿ�ժҪ
ARG_IN ����÷��Ż� "input" ��������ʾ�ӿͻ��˽��ò������ݵ���������
ARG_INOUT ��ʾ����ijһ���õ����������IJ�������ζ�Ž��ò����ӿͻ��˴�����������Ȼ���ٴӷ��������ؿͻ��ˡ�
ARG_OUT ��ʾ���õ� "input" �����ij�������ζ�Ŵӷ��������ò������ݵ��ͻ��ˡ�
BAD_POLICY ������� PolicyError �쳣�е� PolicyErrorCode��
BAD_POLICY_TYPE ������� PolicyError �쳣�е� PolicyErrorCode��
BAD_POLICY_VALUE ����ָʾij������ֵ��ֵ���ò���ֵ���� create_policy �������� ORB ���ж��壩�����е���Ч�������Ͷ����Dz���ȷ�ġ�
CTX_RESTRICT_SCOPE �������� Context.get_values �����ĵڶ�������������������Χ�ı�־��
Current �� Current �ӿ������Ľӿ����� ORB �� CORBA ������������������е�ִ���̹߳�������Ϣ�������ģ���
CurrentOperations Current �Ľӿڡ�
CustomMarshal ���� ORB ���������û�ʹ�õij��� value ���͡�
DataInputStream ������������������ȡ�����������͵ķ������Ա�����Զ���ֵ���͡�
DataOutputStream ����������������������д��������ķ������Ա�����Զ���ֵ���͡�
DomainManager �ṩ����������ϵ�����䵼�����߼���ʹ�����Ļ��ƣ��Լ����������ͷ��ʲ��ԵĻ��ơ�
DomainManagerOperations �� DomainManager �ṩ���ʲ��Եķ�����
DynAny �ѹ�ʱ�� ʹ���µ� DynAny ���
DynArray �ѹ�ʱ�� ʹ���µ� DynArray ���
DynEnum �ѹ�ʱ�� ʹ���µ� DynEnum ���
DynFixed �ѹ�ʱ�� ʹ���µ� DynFixed ���
DynSequence �ѹ�ʱ�� ʹ���µ� DynSequence ���
DynStruct �ѹ�ʱ�� ʹ���µ� DynStruct ���
DynUnion �ѹ�ʱ�� ʹ���µ� DynUnion ���
DynValue �ѹ�ʱ�� ʹ���µ� DynValue ���
IDLType �����б�ʾ OMG IDL ���͵Ľӿڴ洢�⣨Interface Repository��IR������̳еij���ӿڡ�
IDLTypeOperations �˽ӿڱ��������� IDLType ����ʵ�֡�
IRObject IRObject IDL �ӿڱ�ʾ��һ��Ľӿڣ��������� Interface Repository �ӿڣ��������� Repository �������������Ըýӿڡ�
IRObjectOperations �������� IRObject ��ӳ��� Operations �ӿڡ�
Object CORBA �������õĶ��塣
OMGVMCID Ϊ OMG �����Ĺ�Ӧ�̴�Ҫ���� (minor code) ID��
Policy ������ Policy �ӿڵĽӿ����� ORB �� CORBA �������Ӱ���������ijЩѡ�
PolicyOperations �ṩ���ijһ Policy ����IJ�����
PRIVATE_MEMBER ���� ValueMember ����˽�г�Ա�ij�����
PUBLIC_MEMBER ���� ValueMember ���й�����Ա�ij�����
UNSUPPORTED_POLICY ��������� Policy �� ORB ��Ϊ����Ч�ģ���Ŀǰ����֧��ʱ��������һ�� PolicyErrorCode��
UNSUPPORTED_POLICY_VALUE ��������� Policy ֵ����Ч���Ͳ����ڸ����͵���Ч��Χ�ڣ�������ЧֵĿǰ����֧��ʱ�������� PolicyErrorCode��
VM_ABSTRACT ����������ʾ typecode �е� Abstract �ӿڵĴ��롣
VM_CUSTOM ����������ʾ���ʹ������Զ������ֵ���͵Ĵ��롣
VM_NONE ������룬������ʾһ�� typecode ��ֵ���͵�ֵ��
VM_TRUNCATABLE ����������ʾ typecode �пɽض�ֵ���͵Ĵ��롣
 

��ժҪ
_IDLTypeStub IDLType �� Stub��
_PolicyStub Policy �� Stub��
Any �䵱���� IDL �������κ����ݻ��κ� IDL �������͵�������
AnyHolder Any �� Holder��
AnySeqHelper AnySeq �� Helper��
AnySeqHolder AnySeq �� Holder��
BooleanHolder Boolean �� Holder��
BooleanSeqHelper BooleanSeq �� Helper��
BooleanSeqHolder BooleanSeq �� Holder��
ByteHolder Byte �� Holder��
CharHolder Char �� Holder��
CharSeqHelper CharSeq �� Helper��
CharSeqHolder CharSeq �� Holder��
CompletionStatus ָʾijһ�����׳� SystemException ʱ�Ƿ��ѽ������еĶ���
CompletionStatusHelper CompletionStatus �� Helper��
Context ������ Request ������ָ�������Ķ���Ķ����������ַ��������������һ�𱻷���֮ǰ�������ڸ�ָ���������Ķ����н��н�����
ContextList һ��������������ʾ�������Ƶ� String ��������ɵĿ��޸��б���
CurrentHelper Current �� Helper��
CurrentHolder Current �� Holder��
DefinitionKind �����ṩ������ʶ�ӿڴ洢�� (Interface Repository) �������͵ij�����
DefinitionKindHelper DefinitionKind �� Helper��
DoubleHolder Double �� Holder��
DoubleSeqHelper DoubleSeq �� Helper��
DoubleSeqHolder DoubleSeq �� Holder��
DynamicImplementation �ѹ�ʱ�� org.omg.CORBA.DynamicImplementation
Environment ���� Request �������쳣������ (holder)��ʹ�쳣�����ڿͻ��ˡ�
ExceptionList Request ������ʹ�õĶ���������������ijһ�����׳����쳣��
FieldNameHelper FieldName �� Helper��
FixedHolder Fixed �� Holder��
FloatHolder Float �� Holder��
FloatSeqHelper FloatSeq �� Helper��
FloatSeqHolder FloatSeq �� Holder��
IdentifierHelper Identifier �� Helper��
IDLTypeHelper IDLType �� Helper��
IntHolder Int �� Holder��
LocalObject ���� Java ����ӳ���еı��� IDL �ӿ�ʵ�ֵĻ����ࡣ
LongHolder Long ֵ�� Holder��
LongLongSeqHelper LongLongSeq �� Helper��
LongLongSeqHolder LongLongSeq �� Holder��
LongSeqHelper LongSeqHelper �� Helper��
LongSeqHolder LongSeq �� Holder��
NamedValue �� DII �� DSI ���������������ͷ���ֵ�Ķ���
NameValuePair ��ijһ������һ������Ϊ IDL struct ��ֵ���������� DynStruct API ��ʹ�á�
NameValuePairHelper NameValuePair �� Helper��
NVList ���� NamedValue ��������ɵĿ��޸��б���
ObjectHelper  
ObjectHolder Object �� Holder��
OctetSeqHelper OctetSeq �� Helper��
OctetSeqHolder OctetSeq �� Holder��
ORB Ϊ CORBA ����������� (Object Request Broker) �����ṩ API ���ࡣ
ParameterMode Parameter ����ģʽ��ö�١�
ParameterModeHelper Parameter ����ģʽ��ö�١�
ParameterModeHolder Parameter ����ģʽ��ö�١�
PolicyErrorCodeHelper ��װ Policy ��Ч��ԭ��
PolicyErrorHelper �׳� PolicyError ָʾ���ݸ� ORB.create_policy �����IJ���ֵ�������⡣
PolicyErrorHolder �׳� PolicyError ָʾ���ݸ� ORB.create_policy �����IJ���ֵ�������⡣
PolicyHelper Policy �� Helper��
PolicyHolder Policy �� Holder��
PolicyListHelper PolicyList �� Helper��
PolicyListHolder PolicyList �� Holder��
PolicyTypeHelper PolicyType �� Helper��
Principal �ѹ�ʱ�� ���� CORBA 2.2 ȡ����
PrincipalHolder �ѹ�ʱ�� Deprecated by CORBA 2.2.
RepositoryIdHelper RepositoryId �� Helper��
Request ��������ijһ�������������Ϣ�Ķ���
ServerRequest ����Զ�̬��ܽӿڣ�Dynamic Skeleton Interface��DSI���������ʽ״̬�Ķ���
ServiceDetail ��ʾ ORB ����Ķ����� service_detail_type �ֶΰ��� ORB ��������ͣ��� service_detail �ֶΰ��� ORB �����������
ServiceDetailHelper  
ServiceInformation CORBA ģ���е� IDL struct�����ڴ洢���� ORB ʵ���п��� CORBA �������Ϣ����ʹ�� ORB.get_service_information ������ȡ��
ServiceInformationHelper  
ServiceInformationHolder ServiceInformation �� Holder��
SetOverrideType ��� SET_OVERRIDE �� ADD_OVERRIDE �� CORBA enum ��ӳ�䣬��ָʾ��Щ������Ӧ���滻 Object �����в��Ի���Ӧ�ñ����ӵ����в����С�
SetOverrideTypeHelper SetOverrideType �� Helper��
ShortHolder Short �� Holder��
ShortSeqHelper ShortSeqHelper �� Helper��
ShortSeqHolder ShortSeq �� Holder��
StringHolder String �� Holder��
StringSeqHelper String ����
StringSeqHolder String ����
StringValueHelper StringValue �� Helper��
StructMember �����ӿڴ洢�� (Interface Repository) ��һ�� IDL struct ��Ա�������� struct ��Ա�����ơ��� struct ��Ա�������Լ���ʾ�� struct ��Ա��������Ϊ struct ��Ա����IDL ���͵� typedef��
StructMemberHelper StructMember �� Helper��
TCKind IDL enum TCKind �� Java ӳ�䣬TCKind ָ�� TypeCode ��������ࡣ
TypeCode �����й��ض� CORBA �������͵���Ϣ��������
TypeCodeHolder TypeCode �� Holder��
ULongLongSeqHelper ULongLongSeq �� Helper��
ULongLongSeqHolder ULongLongSeq �� Holder��
ULongSeqHelper ULongSeq �� Helper��
ULongSeqHolder ULongSeq �� Holder��
UnionMember �ӿڴ洢�� (Interface Repository) �й��� IDL union ��Ա��������
UnionMemberHelper UnionMember �� Helper��
UnknownUserExceptionHelper UnknownUserException �� Helper��
UnknownUserExceptionHolder UnknownUserException �� Holder��
UShortSeqHelper UShortSeq �� Helper��
UShortSeqHolder UShortSeq �� Holder��
ValueBaseHelper  
ValueBaseHolder ValueBase �� Holder��
ValueMember �ӿڴ洢�� (Interface Repository) �й��� value �����Ա��������
ValueMemberHelper ValueMember �� Helper��
VersionSpecHelper VersionSpec �� Helper��
VisibilityHelper Visibility �� Helper��
WCharSeqHelper WCharSeq �� Helper��
WCharSeqHolder WCharSeq �� Holder��
WrongTransactionHelper WrongTransaction �� Helper��
WrongTransactionHolder WrongTransaction �� Holder��
WStringSeqHelper WString ����
WStringSeqHolder WString ����
WStringValueHelper org/omg/CORBA/WStringValueHelper.java �� "3.0" ��� IDL-to-Java ������������ֲ���� orb.idl �����ɣ�����ʱ��Ϊ 1999 �� 5 �� 31 �� 22:27:30 (GMT+00:00) �ඨ���Ѿ��޸ģ����������� OMG �淶�� �� CORBA 2.3.1 ����� ORB ���� (formal/99-10-07) ptc/00-01-08 �ж���� IDL/Java ����ӳ��
 

�쳣ժҪ
ACTIVITY_COMPLETED ACTIVITY_COMPLETED ϵͳ�쳣�������κη��� Activity �����ĵķ�����������
ACTIVITY_REQUIRED ACTIVITY_REQUIRED ϵͳ�쳣�������κ���Ҫ Activity �����ĵķ�����������
BAD_CONTEXT ���ͻ��˵���ijһ�����������ݵ��������в������ò��������������ֵʱ���׳����쳣��
BAD_INV_ORDER ���쳣ָʾ�����߰�����˳������˲�����
BAD_OPERATION ���������ñ�ʾijһ���ж��󣬵��ö��󲢲�֧�ֵ��õIJ���ʱ���׳����쳣��
BAD_PARAM �����ݸ�ijһ���õIJ���������Χ����Ϊ���Ϸ�ʱ���׳����쳣��
BAD_QOS ֻҪ�����޷�֧�ֵ��ò�����������֮�����ķ�����������IJ���������ķ����������ͻ����� BAD_QOS �쳣��
BAD_TYPECODE �� ORB ������������ʹ��루���磬������Ч TCKind ֵ�����ʹ��룩ʱ���׳����쳣��
Bounds ����������ijһ������ͼ���ʵĶ���ĺϷ���Χ��ʱ���׳����û��쳣��
CODESET_INCOMPATIBLE ���ͻ��˺ͷ������������뼯֮�䲻�ܽ����������ͨ��ʱ���׳����쳣��
COMM_FAILURE ���ijһ�������ڽ���ʱʧȥͨ�ţ���ʱ�ͻ����Ѿ����������󣬵���������Ӧ����δ���ص��ͻ��ˣ����������쳣��
DATA_CONVERSION ��� ORB �޷����ѱ������ݵı�ʾ��ʽת�����䱾����ʾ��ʽ�����������쳣����֮��Ȼ��
FREE_MEM �� ORB ��ͼ�ͷŶ�̬�ڴ浫ȴ��ΪijЩԭ��������Ϊ���𻵻��ڴ�鱻��������ʧ��ʱ���׳����쳣��
IMP_LIMIT ���쳣ָʾ�� OBR ����ʱ������ijһ��ʵ�����ơ�
INITIALIZE ORB �����ʼ���ڼ�����������޷����������Դ�������ô���ʱ���׳����쳣��
INTERNAL ���쳣ָʾ ORB �д����ڲ��������磬�� ORB ��⵽���ڲ����ݽṹ����ʱ���׳����쳣��
INTF_REPOS �� ORB �޷�����ӿڴ洢�⣬���߼�⵽������ӿڴ洢����صĴ���ʱ���������쳣��
INV_FLAG �ڽ���Ч��־���ݸ�ij�����ʱ�����磬�ڴ��� DII ����ʱ�����׳����쳣��
INV_IDENT ���쳣ָʾ IDL ��ʶ�����﷨������Ч�ġ�
INV_OBJREF ���쳣ָʾ�������ô����ڲ�����
INV_POLICY ��Ӧ�����ض����õ� Policy ��д֮�䲻���ݶ������޷����е���ʱ���׳��˱�׼�쳣��
INVALID_ACTIVITY ����ڲ�ͬ���䴦�ڹ���״̬ʱ���ڵ��������лָ������ Activity�����ڸ� Activity �� Transaction ����Ļָ����������� INVALID_ACTIVITY ϵͳ�쳣��
INVALID_TRANSACTION �����������Ч������������ʱ���׳����쳣��
MARSHAL ��ʾ�����д����������Ӧ���ڽṹ����Ч��
NO_IMPLEMENT ���쳣ָʾ�����ܱ����õIJ������ڣ�����һ�� IDL ���壩���������ڸò�����ʵ�֡�
NO_MEMORY ��� ORB ����ʱ�����ڴ治�㣬���׳����쳣��
NO_PERMISSION ����Ϊ������û���㹻��Ȩ�޶����µ���ʧ��ʱ���׳����쳣��
NO_RESOURCES �� ORB ����һЩһ����Դ����ʱ���׳����쳣��
NO_RESPONSE ���ij�ͻ�����ͼ�����ӳ�ͬ�����õĽ�������������Ӧ�в����ã����׳����쳣��
OBJ_ADAPTER ���쳣ͨ��ָʾ��������IJ�ƥ�䣬���磬ij̨������������ͼ��ʵ�ִ洢����ʹ���Ѿ���ʹ�û�洢��δ֪������ע����������
OBJECT_NOT_EXIST ֻҪ����ɾ���Ķ�����ִ�е��ã��ͻ��������쳣��
PERSIST_STORE ���쳣ָʾһ���־ô洢�������磬�޷��������ݿ����ӻ���ij�����ݿ��𻵡�
PolicyError �������Դ���ʱ�׳����û��쳣��
REBIND �����ǰ��Ч RebindPolicy ���� NO_REBIND �� NO_RECONNECT ֵ���Ҷ԰󶨵Ķ�������ִ�е���ʱ����״̬Ϊ OBJECT_FORWARD �� LocateReply ��Ϣ��״̬Ϊ LOCATION_FORWARD �� Reply ��Ϣ�������� REBIND��
SystemException ���� CORBA ��׼�쳣�ĸ��ࡣ
TIMEOUT ���ѳ���ָ������ʱ��ȴû�������κν���ʱ������ TIMEOUT �쳣��
TRANSACTION_MODE ����ͻ��� ORB ��⵽ IOR �е� InvocationPolicy ��ѡ�еĵ���·������ֱ�ӻ�·�ɵ��ã���ƥ�䣬�������׳� CORBA TRANSACTION_MODE �쳣��
TRANSACTION_REQUIRED ���쳣ָʾ�������һ�� null ���������ģ�����Ҫ���Ǽ��������
TRANSACTION_ROLLEDBACK ���������������������ѻع����ѱ��Ϊ�ع�ʱ���׳����쳣��
TRANSACTION_UNAVAILABLE �����ڵ�������� (Transaction Service) ���������쳣��ֹ���޷������������������ʱ���� ORB �׳� CORBA TRANSACTION_UNAVAILABLE �쳣��
TRANSIENT �� ORB ��ͼ����ijһ����ʧ��ʱ���׳����쳣��
UNKNOWN �������ʵ���׳�һ���� CORBA �쳣�������ض��ڸ�ʵ�ֱ�����Ե��쳣��������ijһ��������û�г����ڸò�����������ʽ�е��û��쳣�����������쳣��
UnknownUserException �����ɷ��������ص��û��쳣���ࡣ
UserException CORBA IDL ������û��쳣�ĸ��ࡣ
WrongTransaction CORBA WrongTransaction �û������쳣��
 

������ org.omg.CORBA ������

�ṩ OMG CORBA API �� JavaTM ������Ե�ӳ�䣬���� ORB �࣬�����ʵ�ָ��࣬�����Ա����ʹ�ô�����Ϊȫ���ܶ������������Object Request Broker��ORB����

�й� Java[TM] Platform��Standard Edition 6 ���ص���֧�ֹٷ� CORBA �淶���ֵ���ȷ�б�������� Official Specifications for CORBA support in Java[TM] SE 6��

������Ϣ

��һ���е���Ϣ�����ӿڶ������ԣ�Interface Definition Language��IDL���ļ��Լ�ʹ�� ORB ��д�ͻ��˺ͷ��������û��йء�

��һ������������ͽӿڿɷ�Ϊ���飺ORB �ࡢ�쳣��Helper ��� Holder �ࡣ

ORB ��

ORB ��������������ͻ�����������ϵķ���ʵ��֮��ķ������á���Ϊ�ͻ��˺ͷ���������λ��������κεط������ú�ʵ�ֿ����Բ�ͬ�ı�����Ա�д������ ORB �ں�̨���˺ܶ๤����ʵ�ִ�ͨ�š�

ORB �����Ĵ󲿷ֹ��������û���������ȫ͸���ģ�CORBA ������Ҫ������ ORB �ں�̨ʹ�õ�����ɡ���˴󲿷ֳ���Ա��ֱֻ��ʹ�ô˰���һС���֡�ʵ���ϣ����������Ա��ʹ�� ORB ���һЩ�쳣�е�����������ż��Ҳʹ�� holder ���е�����������

ORB ����

��Ӧ�ó������ CORBA ����֮ǰ����������ִ�����²�����

�ṩ���²�������ʼ��Ӧ�ó��򼰻���ʵ��Ķ������ã�

��Ӧ�ó�����Ҫ CORBA ����ʱ������Ҫһ����������ȡ ORB �������ã�Ҳ������ OA �������ã������ POA�����˻�����������;����һ����;�ǽ�Ӧ�ó����ʼ��Ϊ ORB �� OA �������ڶ�����;�ǽ� ORB �������ú� OA �������÷��ظ�Ӧ�ó����Ա����Ժ�� ORB �� OA ������ʹ�á�

��Ҫ��ȡ ORB �������ã�Ӧ�ó���Ӧ���� ORB.init �������õ��õIJ��������� ORB �ı�ʶ���� arg_list ��ɣ�ǰ���Ƕ�����������Ҫ�ģ����������������ض��ڻ��������ݴ��ݸ����á�

���� ORB �������Է��� ORB��

ʹ�ò��������� init() ��������ʵ����һ������ ORB����ֻ��Ϊ���� typecode �ṩ any����ͨ�� idlj �� Helper �������ɵĴ�������Ҫ��Щ any��

Ӧ�ó�����Ҫһ������������ʼ�������õĿ���ֲ�������� POA��POA Current��Interface Repository �͸��� Object Service ʵ������Ҫ���á�Ӧ�ó�������Ĺ��������� Naming Service �ṩ����Щ���ܡ����ǣ�OMG ��Ӧ��Ҫ�� Naming Service ����������Ӧ�ó����Ա��ܹ��Կ���ֲ��ʽ��ʼ������ˣ���һ����չʾ�IJ����ṩ��һ���򻯵ı��� Naming Service��Ӧ�ó������ʹ��������ȡ������������һС���Ѷ���������á���Ϊֻ�����Ӵ˻����л��һС�鶨�����õĶ����������������Ŀ��ܱ���Ϊ��һ��������ƿռ䡣���ּ򻯵Ľ����ֻ���������������������Ĺ��ܡ�

��ʼ������ͨ�� ORB ����ӿ����ṩ������������õģ��ýӿ����ṩ��һЩ��ʩ���г���������ʼ�������á���Щ���߰�����

ʹ������һЩ������ʾ���� Java IDL ������

�쳣

Java IDL �е��쳣�������� Java ������Ա�д�� any �����е���Щ�쳣���������ijһ�����׳��쳣����ʹ�ø÷����� any ���������һ�� try/catch �飬���ڸ��쳣�׳�ʱ���д�����

���� Java IDL �쳣 ���ĵ����и�����Ϣ����Щ�ĵ�������ϵͳ�쳣���û������쳣֮��IJ�ͬ��

�����ǰ� org.omg.CORBA �ж����ϵͳ�쳣���б�����Щ�쳣��ͨ�� org.omg.CORBA.SystemException �� java.lang.RuntimeException �м̳е�δ������쳣����


        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 ���е�һЩ���� "Package" ��Ϊ�����Ƶ�һ���֡���Щ��ͨ���dz�С����Ϊ��Щ��Ҫ����������������ṩ�쳣���࣬�Ա� CORBA ���еĽӿں���ʹ�á�

���磬�� org.omg.CORBA.TypeCodePackage ���������� TypeCode ���еķ����׳����쳣����Щ�쳣������

�� org.omg.CORBA.ORBPackage �а������������쳣��

��һ�� CORBA ���Ӱ��� portable �����ð��ṩ��һ�� ORB API����Щ API ʹ��ij����Ӧ�̵� IDL �����������ɵĴ����ܹ�����һ����Ӧ�̵� ORB �����С�

Holder ��

֧�� out �� inout ��������ģʽ��Ҫʹ�ø��� holder ������Ϊ Java ������Բ�֧�� out �� inout ������holder �����Ϊһ�ֿ��޸ĵĴ��ݲ�����ʽ���֡�Ϊ��֧�ֿ���ֲ stub �� skeleton��holder �໹ʵ���� org.omg.CORBA.portable.Streamable �ӿڡ�

Holder ����ͨ���� "Holder" ׷�ӵ������������������ġ�����������ָ���� Java ��������е����ơ����磬�� Java �����������Ϊ Account �Ľӿ�����Ӧ�� holder ��Ӧ������Ϊ AccountHolder��

Holder ������� org.omg.CORBA ���е����л��� IDL �������͡���ˣ����� LongHolder��ShortHolder��FloatHolder �ȣ����Ѿ���������Ӧ���ࡣ���������������û������ IDL ���ͣ�typedef ����ij��⣩��ͬ��������һЩ�ࡣ��ע�⣬����������£��û��������Ͱ�����Щ�� OMG �淶�ж�������ͣ������� Interface Repository ����Щ���ͣ������� OMG ���񡣣�

ÿ�� holder �඼������

���� Java ���Զ�������ͣ�Ĭ�Ϲ��췽���� value �ֶ�����Ϊ����Ĭ��ֵ��

������˵������� OMG IDL ����� Account �ӿڱ�ӳ�䵽 Java ������ԣ����������� holder �ࣺ

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 �� Mapping for Basic Types��org.omg.CORBA ���ж���� Holder ���У�

     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

Helper ��

Helper �ļ��ṩ��һЩ������������ľ�̬��������Щ����������

����ӳ��� IDL �ӿڻ����ӿڵ� helper �໹����������������̬�������������� org.omg.CORBA.Object �����ɸ������ij�����͵Ķ������á������Ϊ�ö������ò�֧������������Ͷ���������ʧ�ܣ����׳� IDL �쳣 CORBA.BAD_PARAM��������ͬ��ϵͳ�쳣��ָʾ������������Ĵ��󡣳������� null �����ǿ��Գɹ��������� null ֵ��ͨ����Ӧ�ó�������ԱΨһʹ�õ� helper ������ narrow ��������������ͨ���ں�̨ʹ�ã����Ƕ��ڳ���Ա��͸���ġ�

Helper ���Ϊ�����࣬������ value ���͵� helper �����ڷ� value ���͵� helper����Ϊһ������е����� helper ���ṩ�Ķ�����ͬ�ķ�������������ֻ�ṩÿ�� helper ���һ���Խ��͡�

�ڽ� OMG IDL ӳ�䵽 Java �������ʱ��Ϊÿ���û��������������һ�� "helper" �ࡣ���ɵ�����ཫ�����û��������͵������Լ�׷�ӵ� Helper ��׺�����磬����ӿ� Account ���� OMG IDL ����ģ��� idlj ���������Զ�����һ����Ϊ AccountHelper ���ࡣAccountHelper �ཫ������������ʵ������ľ�̬�����������ʵ��ָ Account ����

narrow ����

��ijһ������ij�������ķ���ֵʱ���ö������Գ���������ʽ���صģ��������� org.omg.CORBA.Object ������� java.lang.Object �����ڿ��ԶԴ˶���ִ�в���֮ǰ�����뽫�ö���ǿ��ת��Ϊ�����������͡����磬Account ������Ϊһ����󷵻أ����ұ�������Ϊ Account �����Ա���ԶԸö������ Account ������

narrow ������������ʽ��һ����ʽ����һ�� org.omg.CORBA.Object ������һ����ʽ����һ�� java.lang.Object ���󡣸��ݸýӿ��Ƿ��dz������ȷ���� helper �ཫ�ṩ��һ�� narrow ���������ڷdz���ӿڵ� helper �ཫ��һ���� CORBA ����� narrow �����������ڳ���ӿڵ� narrow ���������� Java ��������е�һ�����󡣶���������һ����������ӿڵķdz���ӿڣ�helper �ཫͬʱ�ṩ������ʽ�� narrow ������

Hello World �̳�ʹ�õ� 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));

���� Helper ���ʾ��

���ڱ��������� helper �����ÿ�� helper �඼���ṩ�ķ���������� OMG IDL ���������ӳ�䵽 Java ��������еĽӿڣ�����������һ�� narrow �������� value ���͵����ͽ���һ��Ϊ�������ɵĻ��� helper �ࡣ

���磬����ӿ� Account ����һ�� value ���͵� 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;
    }
  }

}

value ���� Helper ��

���� value ���͵� helper ���������ķ�����Ϊ�� value ���ͷ������ɵķ����IJ�ͬ���֡���Ҫ�IJ�ͬ���� value ���Ϳ�����Ϊijһ�����IJ���ֵ�򷵻�ֵ���ݣ�����ζ�����DZ����ǿ����л��ġ�

���� Address �� value ���ͣ��� 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 ������ Helper ����


     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 ���е�������ͽӿڶ����ں�̨ʹ�õģ����ǿɷ�Ϊ���顣�������鶼��ij�ַ�ʽ�������󣬵������� Interface Repository �йأ�������Ϊһ�ࡣ

ORB ��������

��һ���а����� ORB ������������������ʹ�õ���Ϣ��

�����������

�ڶ��������ڴ�������

���������Ľӿ�

�������а������������Ľӿڡ�IDL �� Java ��ӳ��ǿ�н� IDL ö��ӳ�䵽 Java �࣬����ö��ֵ��ʾΪ�����еĹ�����̬�����ֶΣ��� DefinitionKind������һ���棬IDL �ӿ��ⲿ����� IDL ������ӳ�䵽 Java �ӿڣ�ÿ������һ���ӿڣ���

�����Ϊʲô org.omg.CORBA ���еļ����ӿڰ���һ�� value �ֶε�ԭ�򣬸��ֶ���һ�� short ֵ�����ֶ���һ�����ڴ�������ֵ���η�֮��ij��������磬BAD_POLICY �ӿڵ� value �ֶο������׳� PolicyError �쳣��ԭ��֮һ��Ҫָ���˴�����룬Ӧʹ�� BAD_POLICY.value��

PolicyError �쳣ʹ�����½ӿڵ� value �ֶ���Ϊ����ܵĴ�����롣

TypeCode.type_modifier ������������ijһ�ӿڵ� value �ֶΡ���Щ�ӿ������е� VM ��ʾ“ֵ���η�”�� ���³����� ValueMember ����ķ��ʷ������أ�����ָʾ ValueMember ����Ŀɼ��ԡ� ���½ӿ��ж����� NamedValue ������ʹ�õı�־���������������ı�־��

Interface Repository �ӿں���

�������а��� Interface Repository �ӿں��࣬������ idlj �������� OMG IDL �ӿ� ir.idl �����ɡ�Interface Repository ����;�DZ�ʶ�洢�����еĽӿڣ��Ա� ORB ���Է������ǡ�ÿ��ģ�顢���͡��ӿڡ����ԡ��������������쳣�������ȶ���ȫ�� Interface Repository API ������

ORB ����Ҫ�ӿڴ洢�⣬Java IDL Ҳ�������ӿڴ洢�⡣���ܴ˰汾�������ӿڴ洢���ʵ�֣������������� IR ��ͽӿڣ��Դ��� typecodes���μ� org.omg.CORBA.ORB �ӿ��е� create_value_tc��create_struct_tc��create_union_tc �� create_exception_tc ��������
&nbs


����ĵ�

�йظ�����ָ�Ϻͽ̳̣�����ģ�

Java IDL ��û��ʵ�ֵ� CORBA ����

org.omg �Ӱ��а�����һЩ API ��Ϊ���뵱ǰ OMG CORBA �淶����һ�¶��ṩ�ģ��� Sun �� JDKTM �汾��û��ʵ�����ǡ���ʹ������ JDK �������˿����ڱ�׼��չ�Ͳ�Ʒ���ṩ�� API ��ʵ�֡�

�׳� NO_IMPLEMENT ������

org.omg �Ӱ��а�����һЩ API ����Ϊ����ԭ���׳� NO_IMPLEMENT �쳣������һЩԭ���ǣ�

�˰汾��δʵ�ֵ����Ժ� API ���ܽ᣺


org.omg.CORBA ����δʵ�����Ե���ϸ�б�

org.omg.CORBA ����δʵ�ֵķ�����

�����°汾��ʼ��
JDK1.2

JavaTM Platform
Standard Ed. 6

�ύ��������
�йظ���� API �ο����ϺͿ�����Ա�ĵ�������� Java SE ������Ա�ĵ������ĵ���������ϸ�ġ����򿪷���Ա���������Լ�������������ﶨ�塢ʹ�ü��ɺ͹�������ʾ����

��Ȩ���� 2007 Sun Microsystems, Inc. ��������Ȩ���� ����������֤��������������ĵ����·ַ�������