|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
請參見:
描述
介面摘要 | |
---|---|
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。 |
提供一些類別和介面,用來產生跨多個供應商 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[tm] Platform, Standard Edition 6 遵守的官方 OMG 規範的受支持部分的明確列表,請參閱 Official Specifications for CORBA support in Java[tm] SE 6。
PortableServer 模組定義以下與 POA 相關的介面:
此外,POA 還定義 Servant 本機型別。
上文列出的每個介面都有一個關聯的 Operations
介面。Operations
介面由 idlj
編譯器產生,其中包含一些方法簽章,用於在與其關聯的介面中定義的方法。Operations
介面可以通過客戶端和伺服器存取,而其關聯的介面只能通過客戶端調用。
PolicyValue
結尾的類別提供了 create_POA
調用所使用的值,該調用可設置 POA 的策略。參見以下用來示範的樣本程式碼。PolicyValue
檔案包括以下內容:
IdAssignmentPolicyValue
IdUniquenessPolicyValue
ImplicitActivationPolicyValue
LifespanPolicyValue
RequestProcessingPolicyValue
ServantRetentionPolicyValue
ThreadPolicyValue
Helper 類別是為 OMG IDL 介面中所有使用者定義型別產生的,提供操作這些型別所需的靜態方法。Helper 類別中只有一種供應用開發人員使用的方法。narrow
方法。只有 IDL 介面所映射的 Java 介面才有包含 narrow
方法的 helper 類別,因此在 PortableServer
套件中,只有以下類別才具有 narrow
方法:
ForwardRequestHelper
ServantActivatorHelper
ServantLocatorHelper
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 管理器。
此套件提供一個 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 ); } }
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。