У меня странная проблема с методом LdapContext.modifyAttributes (name, mods).Это дает мне NameNotFoundException, даже если этот объект существует по тому же пути.(Я уже проверил с помощью небольшого фрагмента кода, который возвращает * Отличительное имя * с) Вот мой пример кода;
ModificationItem[] mods = new ModificationItem[1];
for(Group g: this.groups)
{
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("member", g.getMembers()));
this.context.modifyAttributes("cn="+g.getGroupName()+", ou=OU_MyGroups", mods);
}
Это мои строки подключения, если это помогает:
this.setConnectionUrl("ldap://10.77.162.187:389/dc=C4test");
Также я пытался получить атрибуты из того же объекта, используя ту же строку имени.
Attributes attr = this.context.getAttributes("cn="+g.getGroupName()+", ou=OU_MyGroups");
И это работало просто отлично.Так что сейчас у меня нет идей.
И это мой след стека:
Exception in thread "main" javax.naming.NameNotFoundException: [LDAP: error code 32 - 00000525: NameErr: DSID-031A0F80, problem 2001 (NO_OBJECT), data 0, best match of: ''
; remaining name 'cn=INSAN KAYNAKLARI DIREKTORLUGU, ou=OU_MyGroups'
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(Unknown Source)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(Unknown Source)
at javax.naming.directory.InitialDirContext.modifyAttributes(Unknown Source)
at com.carrefour.activeDirectory.GroupUpdater.updateGroups(GroupUpdater.java:140)
at com.carrefour.activeDirectory.GroupUpdater.<init>(GroupUpdater.java:129)
at com.carrefour.activeDirectory.ActiveDirectoryUpdater.main(ActiveDirectoryUpdater.java:101)