急求Java读取电子邮件LDAP服务上联系人的方法
现在需要从一LDAP服务上取得所有联系人的信息(用outlook的LDAP服务可以看到联系人)。请给一个用纯Java代码读取的方法(最好不要用框架),告诉我:
1:如何连接
2:如何读取
3:最好告诉我在服务器的存储结构(我知道是树状;难道是一个根,下面全是叶子吗?)
不胜感激!!!
[解决办法]
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安装盘里面有吧
[解决办法]