2012-06-29 59 views
1

我現在試圖使這個工作兩天有兩個不同的庫,但它只是不想做我想做的。所以這裏的問題:錯誤的結果InitialDirContext.search()

我想用java加載ldap條目,我正在使用「org.ietf.ldap」庫。 沒有問題,我可以從ldap中獲得單個條目,完美地工作,但是通過特殊查詢,我只從ldap中獲得一個條目,但應該有15個條目。

這裏是我的代碼:


public void getEntries (String searchDN, int scope, InitialDirContext conn, String attributeName, String attributeValue) { 
     List ansp = new ArrayList(); 
     final String QUERY = "cpMemDN=cn=usuid,ou=EMP,ou=COMPANY,o=META"; 
        searchDN = "ou=SUPPORT, ou=ROLES, ou=SERVICES, ou=COMPANY, o=META"; 
     SearchControls ctrl = new SearchControls(); 
     ctrl.setSearchScope(SearchControls.SUBTREE_SCOPE); 
     NamingEnumeration enumeration = null;

try { 
     enumeration = context.search(searchDN, QUERY, ctrl); 
    } catch (NamingException e) { 
     e.printStackTrace(); 
    } 
    Set<String> cns = new HashSet<String>(); 
    try { 
       while (enumeration.hasMore()) { 
      SearchResult result = (SearchResult) enumeration.next(); 

     } 
    } catch (NamingException e) { 
     e.printStackTrace(); 
    } 

} 

所以我怎麼說,枚舉只包含一個條目,而不是15項(含LDAPBrowser選中)。我也嘗試使用另一個查詢(cn = *)獲取多個條目,並且它工作正常,但我得到了多個條目,但查詢不能成爲問題,因爲它與LDAPBrowser一起使用。

任何想法?

回答

0

OKE它現在與相同的代碼工作,只是嘗試了50次哈哈。奇怪的事情,但解決了。