急求Java读取电子邮件LDAP服务上联系人的方法解决方案
急求Java读取电子邮件LDAP服务上联系人的方法
现在需要从一LDAP服务上取得所有联系人的信息(用outlook的LDAP服务可以看到联系人)。请给一个用纯Java代码读取的方法(最好不要用框架),告诉我:
1:如何连接
2:如何读取
3:最好告诉我在服务器的存储结构(我知道是树状;难道是一个根,下面全是叶子吗?)
不胜感激!!!
------解决方案--------------------
现在需要从一LDAP服务上取得所有联系人的信息(用outlook的LDAP服务可以看到联系人)。请给一个用纯Java代码读取的方法(最好不要用框架),告诉我:
1:如何连接
2:如何读取
3:最好告诉我在服务器的存储结构(我知道是树状;难道是一个根,下面全是叶子吗?)
不胜感激!!!
------解决方案--------------------
- Java code
import javax.naming.*; import javax.naming.directory.*; import java.util.Hashtable; public class SimpleQuery { public static void main(String[] args) { if (args.length != 2) { System.out.println("Syntax: SimpleQuery query attribute"); return; } String query = args[0]; String attribute = args[1]; StringBuffer output = new StringBuffer(); try { String url = "ldap://directory.cornell.edu/o=Cornell%20University,c=US"; Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, url); DirContext context = new InitialDirContext(env); SearchControls ctrl = new SearchControls(); ctrl.setSearchScope(SearchControls.SUBTREE_SCOPE); NamingEnumeration enumeration = context.search("", query, ctrl); while (enumeration.hasMore()) { SearchResult result = (SearchResult) enumeration.next(); Attributes attribs = result.getAttributes(); NamingEnumeration values = ((BasicAttribute) attribs.get(attribute)).getAll(); while (values.hasMore()) { if (output.length() > 0) { output.append("|"); } output.append(values.next().toString()); } } } catch (Exception e) { e.printStackTrace(); } System.out.print(output.toString()); } public SimpleQuery() {} }
------解决方案--------------------
用ldp工具在服务器上先看下目录结构 ldp在server03安装盘里面有吧
------解决方案--------------------
------解决方案--------------------
如果我没记错DN是域名,你不同的域怎么可能有相同的DN
------解决方案--------------------
哎 你等高手回答吧 这个东西我一点兴趣都没有 就稍微接触过一点
------解决方案--------------------
目前这个网上有搭建好的可用的服务器(用来管理联系人的)吗?
看不懂啊