IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

LDAP: problème d'Insertion d'un objet sérialiser


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 100
    Par défaut LDAP: problème d'Insertion d'un objet sérialiser
    Bonjour,

    je développe une application qui modifier, ajout, et supprimer des donnée dans un LDAP.

    j'essaye d'ajouté un objet (sérialiser) mais j'ai un problème dans la fonction bind(...)

    voilà 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
      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://localhost:389"); 
    		    env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
    		    env.put(Context.SECURITY_PRINCIPAL, "cn=Zidane,dc=foot,dc=com"); 
    		    env.put(Context.SECURITY_CREDENTIALS, "secret"); 
    		    DirContext dirContext; 
    
    		    try { 
    
    		      dirContext = new InitialDirContext(env); 
    		      MonObjet objet = new MonObjet("valeur1","valeur2"); 
    
    		      dirContext.bind("cn=monobject,dc=foot,dc=com", objet); 
    		      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"); 
    	  }
    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
     
     
    import java.io.Serializable; 
     
    public class MonObjet implements Serializable { 
     
      //private static final long serialVersionUID = 3309572647822157460L; 
      private String champ1; 
      private String champ2; 
     
      public MonObjet() { 
        super(); 
      } 
     
      public MonObjet(String champ1, String champ2) { 
        super(); 
        this.champ1 = champ1; 
        this.champ2 = champ2; 
      } 
     
      public String getChamp1() { 
        return champ1; 
      } 
     
      public void setChamp1(String champ1) { 
        this.champ1 = champ1; 
      } 
     
      public String getChamp2() { 
        return champ2; 
      } 
     
      public void setChamp2(String champ2) { 
        this.champ2 = champ2; 
      } 
    }

    voilà l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Erreur lors de l'acces au serveur LDAPjavax.naming.directory.InvalidAttributeIdentifierException: [LDAP: error code 17 - javaSerializedData: attribute type undefined]; remaining name 'cn=monobject,dc=foot,dc=com'
    javax.naming.directory.InvalidAttributeIdentifierException: [LDAP: error code 17 - javaSerializedData: attribute type undefined]; remaining name 'cn=monobject,dc=foot,dc=com'
    	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_bind(Unknown Source)
    	at com.sun.jndi.ldap.LdapCtx.c_bind(Unknown Source)
    	at com.sun.jndi.toolkit.ctx.ComponentContext.p_bind(Unknown Source)
    	at com.sun.jndi.toolkit.ctx.PartialCompositeContext.bind(Unknown Source)
    	at com.sun.jndi.toolkit.ctx.PartialCompositeContext.bind(Unknown Source)
    	at javax.naming.InitialContext.bind(Unknown Source)
    	at JNI.main(JNI.java:217)

    Est-ce qu'il y a quelqu'un qui puisse m'aider ?? merci

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Pourquoi poster dans le forum JDBC ?
    Sinon il me semble qu'il n'est pas possible d'ajouter une nouvelle entrée dans un annuaire d'un type non défini dans le schéma de cet l'annuaire. Il faut donc préférer se limiter aux types standards comme "organization" ou "inetOrgPerso", sinon étendre le schéma.

  3. #3
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 61
    Par défaut
    Permettez-moi de relancer le sujet mais ce que demande Monsieur est issu du célèbre "Développons en Java" de J-M DOUDOUX. Donc je doute que ce-dernier puisse nous faire faire quelque chose qui n'est pas faisable.
    Ensuite, j'ai exactement le même probleme. Je pense que cela vient du fait que l'entree utilisée n'existe pas. Il faut donc la creer. Je ne sais pas comment faire en Java mais dans les exemples précédent il est dit comment le faire avec un fichier ldif. Je vais essayer et je vous dis ça ensuite.


  4. #4
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 61
    Par défaut
    Je comprends pas, j'ai tout essayé et pas moyen de faire comme JM. A croire que c'est effectivement infaisable
    J'âi même modifié le java.schema !
    Voici les lignes des fichiers ldif:

    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
    dn: dc=test-ldap,dc=net
    objectClass: dcObject
    objectClass: organization
    dc: test-ldap
    o: Enterprise test
    description: Etreprise tests
    
    dn: cn=Durand,dc=test-ldap,dc=net
    objectClass: organizationalRole
    cn: Durand
    description: Président directeur général
    
    Nécessite la modification du fichier java.schema
    dn: fqcn=personne,dc=test-ldap,dc=net
    objectClass: top
    objectClass: javaClass
    byteCode:: yv66vgAAADEAHQoABgAPCQAQABEIABIKABMAFAcAFQcAFgEABjxpbml0PgEAAygpV
     gEABENvZGUBAA9MaW5lTnVtYmVyVGFibGUBAARtYWluAQAWKFtMamF2YS9sYW5nL1N0cmluZzsp
     VgEAClNvdXJjZUZpbGUBAA9IZWxsb1dvcmxkLmphdmEMAAcACAcAFwwAGAAZAQAMSGVsbG8gV29
     ybGQhBwAaDAAbABwBAApIZWxsb1dvcmxkAQAQamF2YS9sYW5nL09iamVjdAEAEGphdmEvbGFuZy
     9TeXN0ZW0BAANvdXQBABVMamF2YS9pby9QcmludFN0cmVhbTsBABNqYXZhL2lvL1ByaW50U3RyZ
     WFtAQAHcHJpbnRsbgEAFShMamF2YS9sYW5nL1N0cmluZzspVgAhAAUABgAAAAAAAgABAAcACAAB
     AAkAAAAdAAEAAQAAAAUqtwABsQAAAAEACgAAAAYAAQAAAAEACQALAAwAAQAJAAAAJQACAAEAAAA
     JsgACEgO2AASxAAAAAQAKAAAACgACAAAABQAIAAYAAQANAAAAAgAO
    fqcn: personne
    
    dn: cn=personne,dc=test-ldap,dc=net
    javaSerializedData: BINARY (93b)
    objectClass: javaContainer
    objectClass: javaObject
    objectClass: javaSerializedObject
    javaClassNames: personne
    javaClassNames: java.lang.Object
    javaClassNames: java.io.Serializable
    javaClassName: Personne1
    cn: personne
    description: personne compilée
    Au secours, à l'aide

  5. #5
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 61
    Par défaut
    ça y est, j'ai enfin trouvé: l'import du schema java dans le fichier sldap.conf de DOUDOUX est erroné:
    http://java.developpez.com/cours/
    il faute retirer les </b> et dans la ligne:
    include>/b<>b< ./schema/java.schema>/b<
    Bah oui maintenant ça parait évident mais quand on débute on fait pas gaffe, on se dit "ça doit modifier les paramètres du schéma" tu parles !!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Par défaut ldap
    bonsoir tout le monde , je vais relancer ce sujet par cette question :
    quand je crée un objet serialisé ,il m'est impossible de l'obtenir avec la methode lookup
    public class TestLDAP3 {
    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://localhost:389");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "cn=ldap-admin,dc=test-ldap,dc=net");
    env.put(Context.SECURITY_CREDENTIALS, "ldap-admin");
    DirContext dirContext;
    try {
    dirContext = new InitialDirContext(env);
    MonObjet objet = (MonObjet) dirContext.lookup("cn=monobject,dc=test-ldap,dc=net");
    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");
    }
    }
    l'erreur est comme suit :

    Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to pfa2.MonObjet
    at pfa2.TestLDAP3.main(TestLDAP3.java:27)



    un autre probleme plus serieux ; il 'agit des objet serialisé que je crée ,il m'est impossible d'effectuer des operations sur ses derniers ,les erreus portent sur l'inexistence des attributs dans le schema ,c quoi ce shema ? le ldif ??


    MERCI d'avance pour votre aide

Discussions similaires

  1. Problème d'insertion d'un objet dans un "Plateau"
    Par saitron dans le forum Débuter
    Réponses: 3
    Dernier message: 31/12/2012, 11h05
  2. Réponses: 5
    Dernier message: 28/12/2012, 23h21
  3. Réponses: 6
    Dernier message: 18/04/2011, 14h40
  4. [JNDI LDAP] Problème d'insertion en masse
    Par voleurdecarottes dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 09/04/2009, 14h17
  5. [LDAP] Problème lors d'insertion de valeur vide
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/04/2006, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo