所有类
|
|||||||||
软件包 org.omg.PortableServer
提供一些类和接口,用来生成跨多个供应商 ORB 的可移植应用程序的服务器端。请参见:
描述
接口摘要 | |
---|---|
AdapterActivator | 一个适配器激活器,它提供具有随需创建子 POA 功能的 POA。 |
AdapterActivatorOperations | 一个适配器激活器,它提供具有随需创建子 POA 功能的 POA。 |
Current | 从 CORBA::Current 派生的 PortableServer::Current 接口,它提供一些方法实现,这些实现能够访问调用方法的对象的身份。 |
CurrentOperations | 从 CORBA::Current 中派生的 PortableServer::Current 接口,它提供一些能够访问调用方法的对象身份的方法实现。 |
ID_ASSIGNMENT_POLICY_ID | org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java。 |
ID_UNIQUENESS_POLICY_ID | org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java。 |
IdAssignmentPolicy | IdAssignmentPolicy 指定创建的 POA 中的 Object Id 是由应用程序还是由 ORB 生成的。 |
IdAssignmentPolicyOperations | IdAssignmentPolicy 指定创建的 POA 中的 Object Id 是由应用程序还是由 ORB 生成的。 |
IdUniquenessPolicy | IdUniquenessPolicy 指定已创建的 POA 中激活的 servant 是否必须具有唯一的对象身份。 |
IdUniquenessPolicyOperations | IdUniquenessPolicy 指定已创建的 POA 中激活的 servant 是否必须具有唯一的对象身份。 |
IMPLICIT_ACTIVATION_POLICY_ID | org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java。 |
ImplicitActivationPolicy | 此策略指定已创建的 POA 中是否支持隐式激活 servant。 |
ImplicitActivationPolicyOperations | 此策略指定已创建的 POA 中是否支持隐式激活 servant。 |
LIFESPAN_POLICY_ID | org/omg/PortableServer/LIFESPAN_POLICY_ID.java。 |
LifespanPolicy | LifespanPolicy 指定已创建 POA 中实现的对象的生存期。 |
LifespanPolicyOperations | LifespanPolicy 指定已创建 POA 中实现的对象的生存期。 |
POA | POA 对象管理对象集合的实现。 |
POAManager | 每个 POA 对象都有一个关联的 POAManager 对象。 |
POAManagerOperations | 每个 POA 对象具有一个关联的 POAManager 对象。 |
POAOperations | POA 对象管理对象集合的实现。 |
REQUEST_PROCESSING_POLICY_ID | org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.java。 |
RequestProcessingPolicy | 此策略指定已创建的 POA 处理请求的方式。 |
RequestProcessingPolicyOperations | 此策略指定已创建的 POA 处理请求的方式。 |
SERVANT_RETENTION_POLICY_ID | org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.java。 |
ServantActivator | POA 具有 RETAIN 策略时使用 ServantActivator 这种 servant 管理器。 |
ServantActivatorOperations | POA 具有 RETAIN 策略时使用 ServantActivator 这种 servant 管理器。 |
ServantLocator | 当 POA 具有 NON_RETAIN 策略时,使用 ServantLocator 这种 servant 管理器。 |
ServantLocatorOperations | 当 POA 具有 NON_RETAIN 策略时,使用 ServantLocator 这种 servant 管理器。 |
ServantManager | servant 管理器提供一个 POA,该 POA 在接受以非激活的对象为目标的请求时能够根据需要激活对象。 |
ServantManagerOperations | servant 管理器提供一个 POA,该 POA 在接受以非激活的对象为目标的请求时能够根据需要激活对象。 |
ServantRetentionPolicy | 此策略指定已创建的 POA 是否在 Active Object Map 中保留激活的 servant。 |
ServantRetentionPolicyOperations | 此策略指定已创建的 POA 是否在 Active Object Map 中保留激活的 servant。 |
THREAD_POLICY_ID | org/omg/PortableServer/THREAD_POLICY_ID.java。 |
ThreadPolicy | ThreadPolicy 指定已创建的 POA 所使用的线程模型 (threading model)。 |
ThreadPolicyOperations | ThreadPolicy 指定与已创建的 POA 一起使用的线程模型 (threading model)。 |
类摘要 | |
---|---|
_ServantActivatorStub | 当 POA 具有 RETAIN 策略时,它使用 ServantActivator 这种 servant 管理器。 |
_ServantLocatorStub | POA 具有 NON_RETAIN 策略时将使用 ServantLocator 这种 servant 管理器。 |
CurrentHelper | 从 CORBA::Current 派生的 PortableServer::Current 接口,它提供一些方法实现,这些实现能够访问调用方法的对象的身份。 |
DynamicImplementation | 允许动态处理对象调用。 |
ForwardRequestHelper | org/omg/PortableServer/ForwardRequestHelper.java。 |
IdAssignmentPolicyValue | IdAssignmentPolicyValue 可以具有以下值。 |
IdUniquenessPolicyValue | IdUniquenessPolicyValue 可以具有以下值。 |
ImplicitActivationPolicyValue | ImplicitActivationPolicyValue 具有以下语义。 |
LifespanPolicyValue | LifespanPolicyValue 可以具有以下值。 |
POAHelper | POA 对象管理对象集合的实现。 |
RequestProcessingPolicyValue | RequestProcessingPolicyValue 可以具有以下值。 |
Servant | 定义本机 Servant 类型。 |
ServantActivatorHelper | POA 具有 RETAIN 策略时使用 ServantActivator 这种 servant 管理器。 |
ServantActivatorPOA | POA 具有 RETAIN 策略时使用 ServantActivator 这种 servant 管理器。 |
ServantLocatorHelper | POA 具有 NON_RETAIN 策略时使用 ServantLocator 这种 servant 管理器。 |
ServantLocatorPOA | POA 具有 NON_RETAIN 策略时使用 ServantLocator 这种 servant 管理器。 |
ServantRetentionPolicyValue | ServantRetentionPolicyValue 可以具有以下值。 |
ThreadPolicyValue | ThreadPolicyValue 可以具有以下值。 |
异常摘要 | |
---|---|
ForwardRequest | org/omg/PortableServer/ForwardRequest.java。 |
软件包 org.omg.PortableServer 的描述
提供一些类和接口,用来生成跨多个供应商 ORB 的可移植应用程序的服务器端。
在 Java 中,基于可移植对象适配器(Portable Object Adaptor,POA)的动态框架接口(Dynamic Skeleton Interface,DSI)servant 继承自标准 DynamicImplementation 类,而该类继承自 Servant 类。本机 Servant 类型由 POA 的 PortableServer 模块定义。在 Java 中,Servant 类型被映射到 Java org.omg.PortableServer.Servant 类。它充当所有 POA servant 实现的基类,提供许多可由应用程序员调用的方法,以及可由 POA 本身调用(也可由用户重写)以控制 servant 行为各方面的方法。
包规范
有关 Java 2 平台、标准版 v.1.4 遵守的官方 OMG 规范的受支持部分的明确列表,请参阅 Official Specifications for CORBA support in J2SE 1.4。
与 POA 相关的接口
PortableServer 模块定义以下与 POA 相关的接口:
- POA
- POAManager
- ServantManager
- ServantActivator
- ServantLocator
- AdapterActivator
- ThreadPolicy
- LifespanPolicy
- IdUniquenessPolicy
- IdAssignmentPolicy
- ImplicitActivationPolicy
- ServantRetentionPolicy
- RequestProcessingPolicy
- Current
此外,POA 还定义 Servant 本机类型。
操作类
上文列出的每个接口都有一个关联的 Operations
接口。Operations
接口由 idlj
编译器生成,其中包含一些方法签名,用于在与其关联的接口中定义的方法。Operations
接口可以通过客户端和服务器访问,而其关联的接口只能通过客户端调用。
值类
以后缀PolicyValue
结尾的类提供了 create_POA
调用所使用的值,该调用可设置 POA 的策略。参见以下用来示范的样本代码。PolicyValue
文件包括以下内容:
IdAssignmentPolicyValue
IdUniquenessPolicyValue
ImplicitActivationPolicyValue
LifespanPolicyValue
RequestProcessingPolicyValue
ServantRetentionPolicyValue
ThreadPolicyValue
Helper 类
Helper 类是为 OMG IDL 接口中所有用户定义类型生成的,提供操作这些类型所需的静态方法。Helper 类中只有一种供应用程序员使用的方法。narrow
方法。只有 IDL 接口所映射的 Java 接口才有包含 narrow
方法的 helper 类,因此在 PortableServer
包中,只有以下类才具有 narrow
方法:
ForwardRequestHelper
ServantActivatorHelper
ServantLocatorHelper
POA 类
POA 类用于实现 ServantActivator
或 ServantLocator
。
异常
ForwardRequest
异常指示 ORB 负责将当前请求和后续 ForwardRequest
请求传递给异常的 forward_reference
成员所表示的对象。
应用程序员所实现的接口
PortableServer
执行的大部分操作对用户是透明的。因此程序员将只能使用一小部分上述接口。剩余的接口将由 ORB 实现提供。应用程序员所需的接口如下:
AdapterActivator
适配器激活器与 POA 关联。适配器激活器提供具有随需创建子 POA 功能的 POA。产生这一需求可能是接受指定子 POA(或其中一个子 POA)的请求所带来的副作用,调用
find_POA
时将 activate 参数值设置为TRUE
也需要创建子 POA。创建所有所需 POA 的应用服务器在刚开始执行时不需要使用或提供适配器激活器;只有在请求处理期间需要创建 POA 时才有必要这样做。ServantLocator
当 POA 具有
NON_RETAIN
策略时,使用ServantLocator
这种 servant 管理器。ServantActivator
当 POA 具有
RETAIN
策略时,使用ServantActivator
这种 servant 管理器。
org.omg.PortableServer.ServantLocatorPackage 包
此包提供一个 CookieHolder 类,将 Cookie 类型作为 out
参数传递。CookieHolder
类与其他基本类型的 holder 类完全一样。
相关文档
有关 Java IDL 概述,请参见:
代码示例
实例服务器代码
import javax.naming.InitialContext; import javax.naming.Context; import javax.rmi.PortableRemoteObject ; import com.sun.corba.se.impl.poa.POAORB; import org.omg.PortableServer.*; import java.util.*; import org.omg.CORBA.*; import javax.rmi.CORBA.Stub; import javax.rmi.CORBA.Util; public class HelloServer { public HelloServer(String[] args) { try { Properties p = System.getProperties(); // p.put("org.omg.CORBA.ORBClass", "com.sun.corba.ee.internal.POA.POAORB"); ORB orb = ORB.init( args, p ); POA rootPOA = (POA)orb.resolve_initial_references("RootPOA"); Policy[] tpolicy = new Policy[3]; tpolicy[0] = rootPOA.create_lifespan_policy( LifespanPolicyValue.TRANSIENT ); tpolicy[1] = rootPOA.create_request_processing_policy( RequestProcessingPolicyValue.USE_ACTIVE_OBJECT_MAP_ONLY ); tpolicy[2] = rootPOA.create_servant_retention_policy( ServantRetentionPolicyValue.RETAIN); POA tpoa = rootPOA.create_POA("MyTransientPOA", null, tpolicy); String ObjectId = "MyObjectId"; byte[] oid = ObjectId.getBytes(); org.omg.CORBA.Object obj = tpoa.create_reference_with_id(oid, new _HelloImpl_Tie()._all_interfaces(tpoa, oid)[0]); HelloInterface helloRef = (HelloInterface)PortableRemoteObject.narrow( obj, HelloInterface.class ); Context initialNamingContext = new InitialContext(); initialNamingContext.rebind("HelloService", helloRef); System.out.println("Hello Server: Ready..."); orb.run(); } catch (Exception e) { System.out.println("Trouble:" + e); e.printStackTrace(); } } public static void main(String args[]) { new HelloServer( args ); } }
- 从以下版本开始:
-
1.4
所有类
|
|||||||||