Класс ServantLocatorPOA
- java.lang.Object
-
- org.omg.PortableServer.Servant
-
- org.omg.PortableServer.ServantLocatorPOA
- Все реализуемые интерфейсы:
- InvokeHandler, ServantLocatorOperations, ServantManagerOperations
public abstract class ServantLocatorPOA extends Servant implements ServantLocatorOperations, InvokeHandler
Когда у POA политика NON_RETAIN, он использует менеджеры слуг, которые являются ServantLocator. Так как POA знает, что слуга, возвращенная этим менеджером слуг, будет использована только для одного запроса, он может предоставить дополнительную информацию операциям менеджера слуг, и пара операций менеджера слуг может быть способна выполнить что-то другое, чем ServantActivator. Когда POA использует интерфейс ServantLocator, сразу после выполнения вызова операции на сервере, возвращенном preinvoke, POA вызовет postinvoke на менеджере слуг, передав значения ObjectId и Servant в качестве параметров (среди прочих). Эта функция может быть использована для принудительной передачи всех запросов на объекты, связанные с POA, через менеджера слуг.
Конструкторы
| Конструктор и описание |
|---|
ServantLocatorPOA()
|
Методы
| Модификатор и тип | Метод и описание |
|---|---|
String[] |
_all_interfaces(POA poa,
byte[] objectId) Используется ORB для получения полной информации о типе от сервера. |
OutputStream |
_invoke(String $method,
InputStream in,
ResponseHandler $rh) Вызывается ORB для передачи запроса серверу. |
ServantLocator |
_this()
|
ServantLocator |
_this(ORB orb)
|
Наследованные методы из класса org.omg.PortableServer.Servant
_default_POA, _get_delegate, _get_interface_def, _is_a, _non_existent, _object_id, _orb, _poa, _set_delegate, _this_object, _this_object
Наследованные методы из класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Наследованные методы из интерфейса org.omg.PortableServer.ServantLocatorOperations
postinvoke, preinvoke
Подробное описание конструкторов
ServantLocatorPOA
public ServantLocatorPOA()
Подробное описание методов
_invoke
public OutputStream _invoke(String $method,
InputStream in,
ResponseHandler $rh)
Описание скопировано из интерфейса: InvokeHandler
Вызывается ORB для передачи запроса серверу. ORB передает имя метода, поток InputStream, содержащий сериализованные аргументы, и обработчик ResponseHandler, который слуга использует для построения соответствующего ответа. Этот метод может выбрасывать только исключения CORBA SystemException. Метод должен вернуть поток OutputStream, созданный обработчиком ResponseHandler, который содержит сериализованный ответ. Слуга не должна сохранять ссылку на ResponseHandler после окончания вызова метода. Поведение сервера определено следующим образом:
1. Определить правильный метод и десериализовать параметры из InputStream.
2. Вызвать реализацию метода.
3. Если нет пользовательского исключения, создать нормальный ответ с помощью ResponseHandler.
4. Если произошло пользовательское исключение, создать ответ с исключением с помощью ResponseHandler.
5. Сериализовать ответ в OutputStream, возвращенном ResponseHandler.
6. Вернуть OutputStream в ORB.
- Определено в:
-
_invokeв интерфейсеInvokeHandler - Параметры:
-
$method- Имя метода. -
in-InputStreamсодержащий сериализованные аргументы. -
$rh-ResponseHandler, который слуга использует для построения соответствующего ответа - Возвращает:
OutputStreamсозданный обработчиком ResponseHandler, который содержит сериализованный ответ
_all_interfaces
public String[] _all_interfaces(POA poa,
byte[] objectId)
Описание скопировано из класса: Servant
Используется ORB для получения полной информации о типе от сервера.
- Определено в:
-
_all_interfacesв классеServant - Параметры:
-
poa- POA, с которым связан сервер. -
objectId- идентификатор, соответствующий объекту, связанному с этим сервером. - Возвращает:
- Список информации о типах для объекта.
_this
public ServantLocator _this()
_this
public ServantLocator _this(ORB orb)
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.