# Package org.omg.PortableServer.POAPackage

Allows programmers to construct object implementations that are portable between different ORB products.

See: Description

Class Summary
AdapterAlreadyExistsHelper: org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java .
AdapterNonExistentHelper: org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java .
InvalidPolicyHelper: org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java .
NoServantHelper: org/omg/PortableServer/POAPackage/NoServantHelper.java .
ObjectAlreadyActiveHelper: org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java .
ObjectNotActiveHelper: org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java .
ServantAlreadyActiveHelper: org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java .
ServantNotActiveHelper: org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java .
WrongAdapterHelper: org/omg/PortableServer/POAPackage/WrongAdapterHelper.java .
WrongPolicyHelper: org/omg/PortableServer/POAPackage/WrongPolicyHelper.java .

Exception Summary
AdapterAlreadyExists: org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java .
AdapterNonExistent: org/omg/PortableServer/POAPackage/AdapterNonExistent.java .
InvalidPolicy: org/omg/PortableServer/POAPackage/InvalidPolicy.java .
NoServant: org/omg/PortableServer/POAPackage/NoServant.java .
ObjectAlreadyActive: org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java .
ObjectNotActive: org/omg/PortableServer/POAPackage/ObjectNotActive.java .
ServantAlreadyActive: org/omg/PortableServer/POAPackage/ServantAlreadyActive.java .
ServantNotActive: org/omg/PortableServer/POAPackage/ServantNotActive.java .
WrongAdapter: org/omg/PortableServer/POAPackage/WrongAdapter.java .
WrongPolicy: org/omg/PortableServer/POAPackage/WrongPolicy.java .

## Package org.omg.PortableServer.POAPackage Description

Allows programmers to construct object implementations that are portable between different ORB products.

The Portable Object Adaptor (POA) is designed to meet the following goals:

- Allow programmers to construct object implementations that are portable between different ORB products.
- Provide support for objects with persistent identities.
- Provide support for transparent activation of objects.
- Allow a single servant to support multiple object identities simultaneously.

Given an interface `My` defined in `My.idl`, the file `MyPOA.java` is generated by the `idlj` compiler. You must provide the implementation for `My` and it must inherit from `MyPOA`.

`MyPOA.java` is a stream-based skeleton that extends `org.omg.PortableServer.Servant` and implements the `InvokeHandler` interface and the operations interface associated with the IDL interface the skeleton implements.

The `PortableServer` module for the Portable Object Adapter (POA) defines the native `Servant` type. In the Java programming language, the `Servant` type is mapped to the Java `org.omg.PortableServer.Servant` class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior.

All Mapping corresponds to the Chapter 11 of CORBA V2.3.1 specified by OMG document formal/99-10-07.pdf. The exception to this is the `id` attribute, which is added in ptc/00-08-06, section 11.3.8.26.

### Package Specification

For a precise list of supported sections of official specifications with which the Java[tm] Platform, Standard Edition 6, ORB complies, see Official Specifications for CORBA support in Java[tm] SE 6.

Since:
  1.4