Spec-Zone .ru
спецификации, руководства, описания, API
|
В выпусках JDK до 5.0, нет никакого прямого способа получить Отличительное имя (DN) из результатов поиска. Метод SearchResults.getName() всегда возвращает имя, которое является относительно контекста, на котором выполняется поиск. Чтобы получить абсолютное, или полное имя записи поиска, некоторое количество бухгалтерии обязано отслеживать контексты предка. Два новых API ниже добавляются в JDK 5.0, чтобы получить абсолютное имя от NameClassPair, всякий раз, когда поиск, список, или listBindings работа выполняются на контексте:
Вот пример, который получает DNs от поиска LDAP:
public static void printSearchEnumeration(NamingEnumeration retEnum) { try { while (retEnum.hasMore()) { SearchResult sr = (SearchResult) retEnum.next(); System.out.println(">>" + sr.getNameInNamespace()); } } catch (NamingException e) { e.printStackTrace(); } }
Полный пример может быть получен из here
. Эта программа генерирует вывод как указано ниже:
>>cn=Jon Ruiz, ou=People, o=JNDITutorial >>cn=Scott Seligman, ou=People, o=JNDITutorial >>cn=Samuel Clemens, ou=People, o=JNDITutorial >>cn=Rosanna Lee, ou=People, o=JNDITutorial >>cn=Maxine Erlund, ou=People, o=JNDITutorial >>cn=Niels Bohr, ou=People, o=JNDITutorial >>cn=Uri Geller, ou=People, o=JNDITutorial >>cn=Colleen Sullivan, ou=People, o=JNDITutorial >>cn=Vinnie Ryan, ou=People, o=JNDITutorial >>cn=Rod Serling, ou=People, o=JNDITutorial >>cn=Jonathan Wood, ou=People, o=JNDITutorial >>cn=Aravindan Ranganathan, ou=People, o=JNDITutorial >>cn=Ian Anderson, ou=People, o=JNDITutorial >>cn=Lao Tzu, ou=People, o=JNDITutorial >>cn=Don Knuth, ou=People, o=JNDITutorial >>cn=Roger Waters, ou=People, o=JNDITutorial >>cn=Ben Dubin, ou=People, o=JNDITutorial >>cn=Spuds Mackenzie, ou=People, o=JNDITutorial >>cn=John Fowler, ou=People, o=JNDITutorial >>cn=Londo Mollari, ou=People, o=JNDITutorial >>cn=Ted Geisel, ou=People,o=JNDITutorial