Ldap/java [Résolu]

Signaler
Messages postés
14
Date d'inscription
mercredi 22 décembre 2010
Statut
Membre
Dernière intervention
23 juillet 2012
-
Messages postés
14
Date d'inscription
mercredi 22 décembre 2010
Statut
Membre
Dernière intervention
23 juillet 2012
-
Bonjour,
je suis entrain de traiter une application java qui interagi avec un serveur ldap sous MV,j'ai réussi la connexion du serveur à partir du code java ainsi que la modification d'un objet en utilisant la méthode ModifyAttribute,mon probléme maintenant c'est au niveau de la méthode bind()pour le stockage d'un objet.
le bout de code est le suivant:
*******************************************

package xtensus.ldap.ldif;

import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

public class ObtentionObjet {

public static void main(String[] args) {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://192.168.198.131:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=admin,dc=xtensus,dc=com");
env.put(Context.SECURITY_CREDENTIALS, "ikhlass");
DirContext dirContext;

try {
dirContext = new InitialDirContext(env);

MonObjet objet = (MonObjet) dirContext.lookup("cn=xxxxx,dc=xtensus,dc=com");
System.out.println("******test*****");
System.out.println("champ1="+objet.getChamp1());
System.out.println("champ2="+objet.getChamp2());
dirContext.close();
} catch (NamingException e) {
System.err.println("Erreur lors de l'acces au serveur LDAP" + e);
e.printStackTrace();
}
System.out.println("fin des traitements");
}


}
***********************
erreur :Exception in thread "main" java.lang.ClassCastException: com.sun.jndi.ldap.LdapCtx cannot be cast to xtensus.ldap.ldif.MonObjet
at xtensus.ldap.ldif.ObtentionObjet.main(ObtentionObjet.java:23)
SVP de m'aider et merci d'avance,

6 réponses

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
293
Salut,

Ce cast : MonObjet objet = (MonObjet) dirContext.lookup("cn=xxxxx,dc=xtensus,dc=com"); pose problème, la signature de la méthode lookup n'est pas une instance de la classe MonObjet.
Messages postés
14
Date d'inscription
mercredi 22 décembre 2010
Statut
Membre
Dernière intervention
23 juillet 2012

Salut,
excusez moi,mais j'ai pas bien compris,un plus de détail,svp
Merci,
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
293
Tu sais ce qu'est un cast ?

Si ce n'est pas le cas, tu en fais un pourtant...

Object objet = dirContext.lookup("cn=xxxxx,dc=xtensus,dc=com");


Ce code fonctionnera mais tu ne pourras pas utiliser les méthode définies dans la classe MonObjet sur cette instance.
Messages postés
14
Date d'inscription
mercredi 22 décembre 2010
Statut
Membre
Dernière intervention
23 juillet 2012

Salut,
Au fait,j'utilise cette méthode:
***Attribute attribut = new BasicAttribute("Telephone Number");
System.out.println(attribut.add("25666666"));
attributes.put(attribut);****
et avec la méthode ModifyAttribute j'aime modifier le numero de telephone existant par celui ci.Le probléme c'est que au niveau de phpldapadmin sous la machine virtuelle de debian il s'affiche clairement,mais au niveau de JXplorer,le similaire de ldap browser,il s'afiche comme suit "MjUyNTI1MjU="caractère illisible.
le probléme c'est au niveau du jxplorer ??quelle méthode me permet de convertir ç en numérique.
Merci d'avance pour vos réponses,
Messages postés
14
Date d'inscription
mercredi 22 décembre 2010
Statut
Membre
Dernière intervention
23 juillet 2012

pour ta réponse pour le cast,je sais bien le cast,mais ta réponse en éliminant le cast est fausse,il génére une erreur ..,on peut pas faire la conversion.
Messages postés
14
Date d'inscription
mercredi 22 décembre 2010
Statut
Membre
Dernière intervention
23 juillet 2012

pour obtenir un objet du serveur ldap,normalement on utilise la méthode lookup(),mais ça fonctionne pas :/ est ce que je peux utiliser la méthode getAttribute(),cette derniére elle m'affiche les attributs.la ,question est ce que c'est kifkif?? ou il a une diffrence d'utilisation.
Merci