示例,我想在其中删除groupcode=SG
节点和2个子节点,但我得到javax.naming.ContextNotEmptyException
。
这是我的代码:
public boolean delete(String dn, DirContext context) {
if ((dn == null || dn.isEmpty())
|| context == null) {
LOG.error("#delete(?, ?): Some parameters is null or empty!");
return false;
}
try {
context.destroySubcontext(dn);
return true;
} catch (NamingException e) {
LOG.error("#delete(?, ?): Error when trying to delete!", e);
return false;
}
}
我该怎么办?谢谢你的帮助。
答案 0 :(得分:0)
如果您的LDAP服务器支持Tree Delete control并且您可以找到它的Java实现,那么您就完成了:只需设置上下文的请求控件以在执行删除之前包含该控件的实例。这不是一个常见的操作,例如OpenLDAP不支持它。
否则你必须列出每个子上下文并递归删除叶子。