Bonjour,

Je débute en Java et j'aimerais faire une connexion avec LDAP pour faire une recherche dans l'annuaire mais j’obtiens toujours cette erreur:
Exception in thread "main" javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'ou=xxx,o=xxx'
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.searchAux(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.c_search(Unknown Source)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
at javax.naming.directory.InitialDirContext.search(Unknown Source)
at test1.main(test1.java:33)
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.Hashtable;
 
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
 
public class test1 {
  public static void main(String[] args) throws Exception {
    Hashtable<String, String> env = new Hashtable<String, String>();
 
    String sp = "com.sun.jndi.ldap.LdapCtxFactory";
    env.put(Context.INITIAL_CONTEXT_FACTORY, sp);
 
    String ldapUrl = "ldap://xxx.xxx.x.xx:389/dc=xxx, dc=xxx";
    env.put(Context.PROVIDER_URL, ldapUrl);
 
    DirContext dctx = new InitialDirContext(env);
 
    String base = "ou=xxx,o=xxx";
 
    SearchControls sc = new SearchControls();
    String[] attributeFilter = { "cn", "mail" };
    sc.setReturningAttributes(attributeFilter);
    sc.setSearchScope(SearchControls.SUBTREE_SCOPE);
 
    String filter = "(&(sn=z*))";
 
    NamingEnumeration<?> results = dctx.search(base, filter, sc);
    while (results.hasMore()) {
      SearchResult sr = (SearchResult) results.next();
      Attributes attrs = sr.getAttributes();
 
      Attribute attr = attrs.get("cn");
      System.out.print(attr.get() + ": ");
      attr = attrs.get("mail");
      System.out.println(attr.get());
    }
    dctx.close();
  }
}
Quelqu'un saurait-il m'expliquer d'où peut venir le problème ?

Merci d'avance pour votre aide.