1

私は今、2つの異なるライブラリで2日間これを機能させようとしましたが、私がやりたいことをしたくありません. だからここに問題があります:

Java で LDAP エントリを読み込もうとしています。「org.ietf.ldap」ライブラリを使用しています。問題なく、ldap から単一のエントリを取得でき、完全に機能しますが、特別なクエリを使用すると、ldap から 1 つのエントリしか返されませんが、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のエントリではなく1つのエントリしか含まれていません(LDAPBrowserでチェック)。また、別のクエリ (cn=*) で複数のエントリを取得しようとしましたが、うまくいきました。複数のエントリを取得しましたが、LDAPBrowser で動作するため、クエリが問題になることはありません。

何か案は?

4

1 に答える 1

0

50回試しただけで、同じコードで動作するようになりました。奇妙なことですが、解決しました。

于 2012-07-10T09:06:14.853 に答える