请参见:
描述
接口摘要 | |
---|---|
EventContext | 包含注册/注销侦听器的一些方法,这些侦听器在上下文中命名的对象发生更改时获得触发事件的通知。 |
EventDirContext | 包含注册侦听器的一些方法,这些侦听器在目录上下文中命名的对象发生更改时将获得触发事件的通知。 |
NamespaceChangeListener | 指定对名称空间更改感兴趣的侦听器必须实现的方法。 |
NamingListener | 此接口是处理 NamingEvent 的侦听器接口的根。 |
ObjectChangeListener | 指定事件类型为 OBJECT_CHANGED 的 NamingEvent 侦听器必须实现的方法。 |
类摘要 | |
---|---|
NamingEvent | 此类表示命名/目录服务触发的事件。 |
NamingExceptionEvent | 此类表示用来收集通知 NamingEvent 侦听器的信息的过程/进程抛出 NamingException 时触发的事件。 |
在访问命名和目录服务时提供对事件通知的支持。
此包定义 Java Naming and Directory InterfaceTM (JNDI) 的事件通知操作。 JNDI 向使用 Java 编程语言编写的应用程序提供命名和目录功能。它被设计成与任何特定的命名或目录服务实现无关。因此可以使用共同的方式对多种服务(新的、新出现的及已经部署的服务)进行访问。
此包定义 NamingEvent 类以表示由命名/目录服务生成的事件。它还定义 Context 和 DirContext 的子接口(分别称为 EventContext 和 EventDirContext),应用程序可以通过这些子接口注册它们感兴趣的、由上下文触发的事件。
NamingEvent 表示在命名或目录服务中发生的事件。有两种命名事件:
例如,应用程序可以按以下方式注册对上下文中的对象进行的其感兴趣的更改:
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()); } }
当侦听器实例调用 NamingEvent.getEventContext() 时,它必须考虑到其他线程可能将并发使用该上下文。同样,在通过 addNamingListener() 注册侦听器时,注册线程也必须考虑到类似的可能性,即服务提供者稍后可能在新创建的线程中调用这些侦听器。因为一般不保证 Context 实例是线程安全的,所以必须根据需要同步所有上下文操作。