import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.naming.event.EventContext;
import javax.naming.event.NamingExceptionEvent;
import javax.naming.event.NamingListener;
import javax.naming.ldap.UnsolicitedNotificationEvent;
import javax.naming.ldap.UnsolicitedNotificationListener;
/**
* Demonstrates how to register a listener for Unsolicited Notifications. In
* order for the listener to receive a notification, you must prod the directory
* server to send an Unsolicited Notification. The procedure for doing so is
* directory-dependent.
*
* usage: java RegUnsol
*/
class RegUnsol {
public static void main(String[] args) {
// Set up environment for creating initial context
Hashtable<String, Object> env = new Hashtable<String, Object>(11);
env
.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDItutorial");
try {
// Get event context for registering listener
EventContext ctx = (EventContext) (new InitialContext(env)
.lookup("ou=People"));
// Create listener
NamingListener listener = new UnsolListener();
// Register listener with context (all targets equivalent)
ctx.addNamingListener("", EventContext.ONELEVEL_SCOPE, listener);
// Wait 1 minutes for listener to receive events
try {
Thread.sleep(60000);
} catch (InterruptedException e) {
System.out.println("sleep interrupted");
}
// Not strictly necessary if we're going to close context anyhow
ctx.removeNamingListener(listener);
// Close context when we're done
ctx.close();
} catch (NamingException e) {
e.printStackTrace();
}
}
/**
* A sample UnsolicitedNotificationListener.
*/
static class UnsolListener implements UnsolicitedNotificationListener {
public void notificationReceived(UnsolicitedNotificationEvent evt) {
System.out.println("received: " + evt);
}
public void namingExceptionThrown(NamingExceptionEvent evt) {
System.out.println(">>> UnsolListener got an exception");
evt.getException().printStackTrace();
}
}
}
分享到:
相关推荐
### JNDI与LDAP基础概念 ...文档中的实例代码展示了如何利用Java技术栈快速搭建一个基于内存的LDAP服务器环境,并且讲解了相关的核心概念和安全注意事项,为理解和实现基于JNDI的LDAP集成提供了理论基础和技术支持。
- **监听器**:客户端可以通过注册监听器来接收事件通知。 - **事件注册与注销**:控制事件的通知机制。 #### 六、总结 JNDI 作为一种高级的命名和目录服务接口,不仅提供了强大的功能,而且具有很高的灵活性和...
它提供了一个统一的接口来处理不同的命名和目录系统,如 Lightweight Directory Access Protocol (LDAP)、文件系统、RMI Registry等。 在"jndi指南.zip"这个压缩包中,我们可以找到一些关键文件,它们可能是用来...
3. `javax.naming.event`:支持事件通知机制,当命名或目录服务发生改变时,可以触发事件监听器。 4. `javax.naming.ldap`:针对LDAP服务提供了特定的扩展操作和支持。 5. `javax.naming.spi`:提供服务提供者插入...
**Java源码:开源LDAP浏览器JXplorer** ...总之,JXplorer的源码为Java开发者提供了一个深入了解LDAP、Java GUI编程、以及开源项目实践的宝贵机会。无论是初学者还是经验丰富的开发者,都可以从中受益匪浅。
JXplorer是一款开源的、跨平台的 LDAP 浏览器和编辑器,它提供了一个直观的图形用户界面,使管理员和开发者能够轻松地查看、操作和管理LDAP目录。 本文将深入探讨JXplorer的源码,解析其核心功能和实现原理,帮助...
Oracle目录服务器实例,即LDAP服务器实例,通过OID监听器/分派器进程处理LDAP请求。当接收到请求时,它会创建服务进程,利用多处理器系统的并行处理能力。服务进程通过Oracle网络服务与Oracle数据库交互,处理用户的...
10.3.1创建消息监听器 10.3.2编写纯pojomdp 10.4使用基于消息的rpc 10.4.1引入lingo 10.4.2输出服务 10.4.3代理jms 10.5小结 第11章spring和ejb 11.1在spring中置入ejb 11.1.1代理会话bean(ejb2.x) 11.1.2...
10.3.1 创建消息监听器 10.3.2 编写纯POJO MDP 10.4 使用基于消息的RPC 10.4.1 引入Lingo 10.4.2 输出服务 10.4.3 代理JMS 10.5 小结 第11章 Spring和EJB 11.1 在Spring中置入EJB 11.1.1 代理会话Bean...
10.3.1 创建消息监听器 10.3.2 编写纯POJO MDP 10.4 使用基于消息的RPC 10.4.1 引入Lingo 10.4.2 输出服务 10.4.3 代理JMS 10.5 小结 第11章 Spring和EJB 11.1 在Spring中置入EJB 11.1.1 代理会话Bean...
JNDI是一个API,它允许Java应用程序访问命名和目录服务,包括LDAP。下面是一些核心的JNDI操作: 1. **连接 LDAP 服务器**:使用`InitialDirContext`类初始化上下文,配置连接参数如主机名、端口、用户名和密码。 2...
- **第二部分**:涵盖了Web应用程序开发的相关内容,包括J2EE介绍、使用Ant和CVS创建稳健的开发环境、Servlet、JSP 2.0、JSTL、过滤器、监听器、XSLT、JNDI、JTA和log4j的开发方法。 - **第三部分**:深入探讨Tomcat...
同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话…… 还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对文本...
Java中的`javax`包是一个非常重要的包,它包含了许多用于不同功能的子包,这些子包为Java开发者提供了丰富的API,使得开发更为便捷。`javax`包中的类和接口通常是Sun Microsystems(现已被Oracle收购)定义的标准扩展...
WebLogic服务器管理是Oracle公司提供的一个企业级Java应用服务器,它在Java EE(现在称为Jakarta EE)平台上运行,用于构建、部署和管理分布式应用程序。WebLogic提供了丰富的功能,包括集群、安全管理、性能监控、...
Apache JMeter 是一个开源的,100%纯Java的应用程序,专门用于测试和测量各种应用程序的性能和负载能力,尤其是针对Web应用程序。它能够处理静态和动态资源,如Java Servlets、Java对象、数据库和FTP服务器等。...
3. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一个统一的接口来访问各种命名和目录服务,如DNS、LDAP等。在J2EE中,JNDI常用于查找资源,如数据源、EJB引用等。 4. **JTA(Java Transaction API...
在测试过程中,你可以配置各种元件,如定时器、监听器、断言等,以更好地监控和优化测试结果。 在硬件需求方面,JMeter要求至少JVM 1.4或更高版本,而在操作系统上,只要支持Java的平台都可以运行JMeter。对于开发...
通过配置定时器、监听器、断言等组件,可以更深入地了解和优化测试结果。 总之,JMeter是一款强大的性能测试工具,适用于多种类型的测试场景,并具有高度的灵活性和可扩展性,为开发者和测试人员提供了全面的测试...