|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Чтобы считать атрибуты объекта из каталога, используйте DirContext.getAttributes() и передайте это имя объекта, для которого Вы хотите атрибуты. Предположите, что у объекта в службе именования есть имя "cn=Ted Geisel, ou=People". Чтобы получить атрибуты этого объекта, Вы будете нуждаться
Attributes answer = ctx.getAttributes("cn=Ted Geisel, ou=People");
Можно тогда напечатать содержание этого ответа следующим образом.
for (NamingEnumeration ae = answer.getAll(); ae.hasMore();) {
Attribute attr = (Attribute)ae.next();
System.out.println("attribute: " + attr.getID());
/* Print each value */
for (NamingEnumeration e = attr.getAll(); e.hasMore();
System.out.println("value: " + e.next()))
;
}
Это производит следующий вывод.
# java GetattrsAll attribute: sn value: Geisel attribute: objectclass value: top value: person value: organizationalPerson value: inetOrgPerson attribute: jpegphoto value: [B@1dacd78b attribute: mail value: Ted.Geisel@JNDITutorial.example.com attribute: facsimiletelephonenumber value: +1 408 555 2329 attribute: telephonenumber value: +1 408 555 5252 attribute: cn value: Ted Geisel
Чтобы считать выборочное подмножество атрибутов, Вы предоставляете массив строк, которые являются идентификаторами атрибута атрибутов, которые Вы хотите получить.
// Specify the ids of the attributes to return
String[] attrIDs = {"sn", "telephonenumber", "golfhandicap", "mail"};
// Get the attributes requested
Attributes answer = ctx.getAttributes("cn=Ted Geisel, ou=People", attrIDs);
This example просит "sn", "telephonenumber", "golfhandicap" и атрибуты "mail" объектного "cn=Ted Geisel, ou=People". У этого объекта есть все кроме атрибута "golfhandicap", и таким образом, три атрибута возвращаются в ответе. Следующее является выводом примера.
# java Getattrs attribute: sn value: Geisel attribute: mail value: Ted.Geisel@JNDITutorial.example.com attribute: telephonenumber value: +1 408 555 5252