Spec-Zone .ru
спецификации, руководства, описания, API
 Платформа Java™
Стандарт Эд. 7

Пакет javax.naming.event

Оказывает поддержку для уведомления о событии, получая доступ к именованию и службам каталогов.

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

Пакет javax.naming.event Описание

Оказывает поддержку для уведомления о событии, получая доступ к именованию и службам каталогов.

Этот пакет определяет операции уведомления о событии Именования Java и Каталога InterfaceTM (JNDI). JNDI обеспечивает именование и функциональность каталога к приложениям, записанным в языке программирования Java. Это разрабатывается, чтобы быть независимым от любого определенного именования или реализации службы каталогов. Таким образом ко множеству служб - новый, появление, и уже развернутые - можно получить доступ в распространенном способе.

Именование Событий

Этот пакет определяет класс NamingEvent, чтобы представить событие, которое сгенерировано именованием/службой каталогов. Это также определяет подынтерфейсы Context и DirContext, названного EventContext и EventDirContext, через который приложения могут зарегистрировать свой интерес к событиям, запущенным контекстом.

NamingEvent представляет событие, которое происходит в именовании или службе каталогов. Есть две категории именования событий:

Каждая категория событий обрабатывается соответствующим слушателем: NamespaceChangeListener, ObjectChangeListener.

Приложение, например, может зарегистрировать свой интерес к изменениям к объектам в контексте следующим образом:

EventContext src = 
    (EventContext)(new InitialContext()).lookup("o=wiz,c=us");
src.addNamingListener("ou=users", EventContext.ONELEVEL_SCOPE,
    new ChangeHandler());
...
class ChangeHandler implements ObjectChangeListener {
    public void objectChanged(NamingEvent evt) {
        System.out.println(evt.getNewBinding());
    }
    public void namingExceptionThrown(NamingExceptionEvent evt) {
        System.out.println(evt.getException());
    }
}

Поточная обработка Проблем

Когда событие диспетчеризируется слушателю, метод слушателя (такой как objectChanged()) может быть выполнен в потоке кроме того, в котором выполнялся звонок в addNamingListener(). Выбор которого распараллеливают, чтобы использовать, делается поставщиком услуг. Когда событие диспетчеризируется многократным слушателям, поставщик услуг может выбрать (и обычно поощряется) выполнить методы слушателя одновременно в отдельных потоках.

Когда экземпляр слушателя вызывает NamingEvent.getEventContext(), он должен принять во внимание возможность, что другие потоки будут работать с тем контекстом одновременно. Аналогично, когда слушатель регистрируется через addNamingListener(), регистрирующийся поток должен принять во внимание вероятную возможность, что поставщик услуг позже вызовет слушателей в недавно создаваемых потоках. Поскольку экземпляры Context, как гарантируют, не будут ориентированы на многопотоковое исполнение вообще, все операции контекста должны синхронизироваться как необходимый.

Обработка исключений

Когда слушатель регистрируется для событий в контексте, контекст, возможно, должен был бы сделать некоторую внутреннюю обработку, чтобы собрать информацию, требуемую генерировать события. Контекст, например, возможно, должен был бы обратиться с просьбой к серверу, чтобы зарегистрировать интерес к изменениям на сервере, который будет в конечном счете преобразован в события. Если исключение произойдет, который предотвращает информацию о событиях от того, чтобы быть собранным, то слушатель никогда не будет уведомляться относительно событий. Когда такое исключение происходит, NamingExceptionEvent запускается, чтобы уведомить слушателя. Метод namingExceptionThrown() слушателя вызывается, как показано в примере кода выше, и слушатель автоматически вычеркивается из списка.

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

Спецификация API JNDI и связанные документы могут быть найдены в документации JNDI.
С тех пор:
1.3
 Платформа Java™
Стандарт Эд. 7

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