如何从javax.naming.directory.Attribute中提取值

Tap*_*ose 7 java jndi ldap

问题说明了一切.当我打印属性时,它是:

cn: WF-008-DAM-PS
Run Code Online (Sandbox Code Playgroud)

代码段是:

private void searchGroup() throws NamingException {
    NamingEnumeration<SearchResult> searchResults = getLdapDirContext().search(groupDN, "(objectclass=groupOfUniqueNames)", getSearchControls());
    String searchGroupCn = getCNForBrand(m_binder.getLocal("brandId"), m_binder.getLocal("brandName"));
    Log.info(searchGroupCn);
    while (searchResults.hasMore()) {
        SearchResult searchResult = searchResults.next();
        Attributes attributes = searchResult.getAttributes();
        Attribute groupCn = attributes.get("cn");
        if(groupCn != null) {
            Log.info(groupCn.toString());               
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到的值是:WF-008-DAM-PS没有关键部分?问候.

Tap*_*ose 6

解决方案是:

Attribute groupCn = attributes.get("cn");
String value = groupCn.get();
Run Code Online (Sandbox Code Playgroud)


Ter*_*ner 5

调用getValue()方法或getValue(int)方法.

  • @TapasBose Terry曾经错过了.这些方法称为get(),而不是getValue(),这不是1.4.2之后发生的变化. (2认同)