在用Java编写的LDAP中搜索后,我有一个有效的条目
cn=DE9-M5T,ou=students,ou=users,o=data
我现在做的时候
if (entry != null && entry.getAttribute("modifyTimestamp") != null) {
String dn = entry.getDN();
String modifyTimestamp = entry.getAttribute("modifyTimestamp").getStringValue();
String oldTimestamp = modificationTimestampCache.get(dn);
String cnUserId = entry.getAttribute("cn").getStringValue();
...
}
最后一行给出了NullPointerException,这意味着
entry.getAttribute("cn")
必须返回null
。在文档之后,只有在找不到给定属性(此处"cn"
)完全匹配时才会发生这种情况。有没有理由在LDAP中"cn"
发生这种情况?
答案 0 :(得分:-1)
从你的代码中我无法弄清楚你的条目及其getAttribute()的确切类型,但请考虑一下:
cn
是多值 ldap属性,其中modifytimestamp
是单值。
因此,cn
的值可能存储在类似数组的结构中,我猜你的getAttribute()并不像你期望的那样处理它。
答案 1 :(得分:-1)
并非每个对象类都具有cn
属性。只有它出现在架构中的那些。
显然这不是其中之一。