Пожалуйста, учтите, что спецификации и другая информация, содержащаяся здесь, не являются заключительными и могут быть изменены. Информация доступна для вас исключительно ради ознакомления.
 Платформа Java™
Стандарт Эд. 8

Проект сборка-b92

Пакет org.omg. PortableServer

Обеспечивает классы и интерфейсы для того, чтобы сделать сторону сервера Ваших приложений переносимой через ШАРЫ разных производителей.

См.: Описание

Пакет org.omg. Описание PortableServer

Обеспечивает классы и интерфейсы для того, чтобы сделать сторону сервера Ваших приложений переносимой через ШАРЫ разных производителей.

В Java Переносимый Объектный Адаптер (POA) на основе Динамический Скелетный Интерфейс (DSI) слуги наследовали от стандартного DynamicImplementation class, который наследовал от Servant class. Собственный тип Servant определяется модулем PortableServer для POA. В Java тип Servant отображается на Java org.omg.PortableServer.Servant class. Это служит основным class для всех реализаций слуги POA и обеспечивает много методов, которые могут быть вызваны прикладным программистом, так же как методами, которые вызываются POA непосредственно и могут быть переопределены пользователем, чтобы управлять аспектами поведения слуги.

Спецификация пакета

Для точного списка поддерживаемых разделов официальных спецификаций OMG, которым Java [ТМ] подчиняется Платформа, Standard Edition 6, см. Официальные Спецификации для поддержки CORBA в Java [ТМ] SE 6.

POA-связанные Интерфейсы

Модуль PortableServer определяет следующие POA-связанные интерфейсы:

Кроме того, POA определяет Servant собственный тип.

Классы операций

У каждого из упомянутых выше интерфейсов есть связанное Operations интерфейс. Operations интерфейс сгенерирован idlj компилятор и содержит сигнатуры методов для методов, определенных в его связанном интерфейсе. Operations к интерфейсу можно получить доступ и клиентом и сервером, в то время как его связанный интерфейс может только вызвать клиент.

Классы значения

Классы, заканчивающиеся в суффиксе PolicyValue обеспечьте значения, используемые для create_POA вызовите, который устанавливает политику для POA. См. пример кода ниже для демонстрации. PolicyValue файлы включают следующее:

Классы помощника

Классы помощника, которые сгенерированы для всех определяемых пользователем типов в интерфейсе IDL OMG, статические методы предоставления, должны были управлять теми типами. Есть только один метод в помощнике class, который использует прикладной программист: narrow метод. Только у интерфейсов Java, отображенных от интерфейсов IDL, будет помощник class, который включает a narrow метод, таким образом, в PortableServer пакет, только у следующих классов есть a narrow метод:

Классы POA

Классы POA используются, чтобы реализовать ServantActivator или ServantLocator.

Исключения

ForwardRequest исключение указывает к ШАРУ, что это ответственно за поставку текущего запроса и последующий ForwardRequest запросы к объекту, обозначенному в forward_reference элемент исключения.

Интерфейсы, Реализованные Прикладным программистом

Большинство какой PortableServer делает прозрачно пользователю. Результат состоит в том, что программисты будут использовать только несколько из упомянутых выше интерфейсов. Остающиеся интерфейсы будут обеспечены реализацией ШАРА. Интерфейсы интереса для прикладных программистов являются следующим:

Пакет org.omg.PortableServer.ServantLocatorPackage

Этот пакет предоставляет CookieHolder class для того, чтобы передать тип Cookie как out параметр. CookieHolder class следует точно за тем же самым образцом как другие классы держателя для основных типов.

Связанная Документация

Для краткого обзора IDL Java, пожалуйста, см.:

  • Домашняя страница IDL Java.

    Пример кода

    Серверный код в качестве примера

    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
     Платформа Java™
    Стандарт Эд. 8

    Проект сборка-b92

    Представьте ошибку или функцию
    Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
    Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.

    Проект сборка-b92