有个支持jndi的Server就可以(Weblogic,Websphere等好像都支持)。
同rmi的名字和对象绑定一样,JNDI和LDAP也是如此,不过是允许有属性而已。并且支持分级(没有试过在RMI里面用DirContext,不过应该也是可以的吧。)。

解决方案 »

  1.   

    那像OpenLDAP和iPlanet是干什么的呢?有了WebShpere就不用他们了吗?
      

  2.   

    这个我就不知道了,我也只在weblogic下面实现过,知道websphere也能实现。
      

  3.   

    iPlanet也是一种应用服务器啊。openLDAP不知道。
      

  4.   

    你在WebLogic下面是怎么实现的呢?难道只要代码就可以了吗?应该先配置ldap的吧!就像如果要使用jdbc,先要在你用的数据库里面建好表什么的,不然你直接运行代码他找不到你的表的呀!关系型数据库我会用的,建个表就可以了,那ldap怎么弄呢?要先建立域?
      

  5.   

    JNDI的目的是把各种名字服务、目录服务等在Java编程中统一用JNDI的API调用,这样就方便编程人员。名字服务常见的如RMI Registry,CORBA的COS名字服务等。目录服务常见的是Novell eDirectory(或常称为Novell NDS),Microsoft Active Directory。这个LDAP就是访问目录服务的工业标准。现在Java要统一用JNDI去访问目录服务,因此SUN的JNDI包里就提供了一个LDAP Service Provider,调用过程内部流程就是:你的代码--》JNDI--》LDAP Service Provider--》各种支持LDAP的目录服务。
      

  6.   

    你在Win2k Server上安装了Active Directory后,就可以使用JNDI访问AD中存放的内容,比如说域用户列表。不需要J2EE应用服务器就可以访问。
      

  7.   

    谢谢各位,但是我不想用微软的Active Directory,有什么IBM或者Sun的解决方案吗?
      

  8.   

    Sun的iPlanet目录服务(现在叫Sun One Directory Service)原本是领袖级的产品,可惜自2000年随网络泡沫到达顶峰后,开始走下坡路,地盘被Novell eDirectory和Microsoft AD蚕食。IBM也有SecureWay产品,是个后来者。不如试一试OpenLDAP?简单资源开销也小。
      

  9.   

    是啊,也想过,但是好像没有for windows版?
      

  10.   

    iplanet的ldap(for win)挺好用,我用过,jndi编程也挺好用的
      

  11.   

    给你写个例子,这个例子通过WebLogic的System用户获得一个WebLogic的上下文,希望对你理解JNDI有点帮助,:)import javax.naming.*;
    import weblogic.jndi.*;
    import java.util.*;Context ctx = null;
    Hashtable ht = new Hashtable();ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    ht.put(Context.PROVIDER_URL,"t3://localhost:7001");
    ht.put(Context.SECURITY_CREDENTIALS,"password");try
    {
       ctx = new InitialContext(ht);
       //do something with the context
    }
    catch(NamingException e){}finally
    {
      try
       {
         ctx.close(); 
       }
      catch(Exception e){}
    }
      

  12.   

    谢谢各位。
    还有就是iplanet应该是比较好用的,但是安装他一定要有域,但是一配置好域控制器Active Directory也启用了,再安装iplanet我就有两个ldap实现了,这不是很伤啊?而且我不想用AD,因为书上说按照传统(讽刺啊),微软向AD里添加了很多非标准的东西。就像如果要用JDBC,用Access或者SQL Server作数据库是很不上品的啊。
      

  13.   

    嗯,我现在操作的LDAP就是用JUN JDK中提供的API
    不过,在项目中觉得这些API会导致内存不稳定,CPU占用率比较高
    想问一下各位有什么好办法