public interface ORBInitializer extends ORBInitializerOperations, Object, IDLEntity
Перехватчики предназначаются, чтобы быть средством, которым службы ШАРА получают доступ к обработке ШАРА, эффективно становясь частью ШАРА. Так как Перехватчики являются частью ШАРА, когда ORB.init
возвращает ШАР, Перехватчики должны быть зарегистрированы. Перехватчики не могут быть зарегистрированы на ШАРЕ после того, как он был возвращен звонком ORB.init
.
Перехватчик регистрируется, регистрируя связанное ORBInitializer
объект, который реализует ORBInitializer
интерфейс. Когда ШАР инициализирует, он должен вызвать, каждый зарегистрировался ORBInitializer
, передача этого ORBInitInfo
объект, который используется, чтобы зарегистрировать его Перехватчик.
Регистрация Инициализаторов ШАРА в Java
ORBInitializers регистрируются через свойства ORB Java.
Имена свойства имеют форму:
org.omg.PortableInterceptor.ORBInitializerClass.<Service>
где <Service>
имя строки class, который реализует org.omg.PortableInterceptor.ORBInitializer
Чтобы избежать коллизий имени, обратное соглашение о присвоении имен DNS должно использоваться. Например, если у компании X есть три инициализатора, она могла бы определить следующие свойства: org.omg.PortableInterceptor.ORBInitializerClass.com.x.Init1
org.omg.PortableInterceptor.ORBInitializerClass.com.x.Init2
org.omg.PortableInterceptor.ORBInitializerClass.com.x.Init3
org.omg.PortableInterceptor.ORBInitializerClass
буду собран, <Service>
часть каждого свойства должна быть извлечена, объект нужно инстанцировать с <Service>
представьте в виде строки как его имя class, и pre_init
и post_init
к методам нужно обратиться тот объект. Если будут какие-либо исключения, то ШАР должен проигнорировать их и продолжиться. Пример
У клиентской службы журналирования, записанной компанией X, например, может быть следующая реализация ORBInitializer:
Выполнять вызванную программу
package com.x.logging;
import org.omg.PortableInterceptor.Interceptor;
import org.omg.PortableInterceptor.ORBInitializer;
import org.omg.PortableInterceptor.ORBInitInfo;
public class LoggingService implements ORBInitializer {
void pre_init( ORBInitInfo info ) {
// Instantiate the Logging Service s Interceptor.
Interceptor interceptor = new LoggingInterceptor();
// Register the Logging Service s Interceptor.
info.add_client_request_interceptor( interceptor );
}
void post_init( ORBInitInfo info ) {
// This service does not need two init points.
}
}
MyApp
используя эту службу журналирования, пользователь мог ввести:
java -Dorg.omg.PortableInterceptor.ORBInitializerClass.com.x.Logging.LoggingService MyApp
Примечания о Регистрирующихся Перехватчиках
Перехватчики запроса регистрируются на основе НА ШАР.
Чтобы достигнуть виртуальных Перехватчиков на объект, запросите политики по цели изнутри точек перехвата, чтобы определить, должны ли они сделать какую-либо работу.
Чтобы достигнуть виртуальный на - POA Перехватчики, инстанцируйте каждого POA с различным ШАРОМ. В то время как Перехватчики могут быть упорядочены административно, нет никакого понятия порядка относительно регистрации Перехватчиков. Перехватчики запроса касаются контекстов службы. У контекстов службы нет никакого порядка, таким образом нет никакой цели для Перехватчиков запроса, чтобы иметь порядок. Перехватчики IOR касаются теговых компонентов. У теговых компонентов также нет никакого порядка, таким образом нет никакой цели для Перехватчиков IOR, чтобы иметь порядок.
Регистрационный код должен избегать использования ШАРА (то есть, вызывая ORB.init
с обеспеченным orb_id
). Так как регистрация происходит во время инициализации ШАРА, результаты вызовов на этом ШАРЕ, в то время как это находится в этом состоянии, неопределены.
ORBInitInfo
post_init, pre_init
_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _is_a, _is_equivalent, _non_existent, _release, _request, _set_policy_override
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92