JNDI则是Java中用于访问LDAP的API,是为了Java程序访问命名服务和目录服务而提供的统一API。开发人员使用JNDI完成与LDAP服务器之间的通信,即用JNDI来访问LDAP,而不需要和具体的目录服务产品特性打交道。这样通过LDAP、JNDI两层抽象,使Java程序对目录服务的访问做到了平台无关性。
JNDI在Java EE中使用十分广泛;包括EJB、RMI-IIOP(RMI中的注册服务)、JDBC和JMS等。这些技术都需要命名和目录服务的支持
LDAP和JNDI的关系,类似于数据库的标准和JDBC的关系。LDAP定义了目录访问的标准,JNDI为java程序提供了访问LADP的API。当然LDAP只是一个协议,不是具体的实现,有很多具体的LDAP服务器,