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

Langage Java Discussion :

[Language]Problème de syntaxe


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut [Language]Problème de syntaxe
    Bonjour,

    J'ai écrit un filtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SearchControls searchCtls = new SearchControls();
    searchCtls.setSearchScope (SearchControls.SUBTREE_SCOPE);
    J'ai une variable roleSubtree qui est une String qui contient la valeur SUBTREE_SCOPE.

    J'ai modifié mon filtre de sorte à ce qu'il utilise ma variable roleSubtree :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    searchCtls.setSearchScope (SearchControls.roleSubtree);
    A la compilation, j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    .\src\ch\esnig\ldap\ClientLDAP.java:107: cannot find symbol
    symbol  : variable roleSubtree
    location: class javax.naming.directory.SearchControls
    searchCtls.setSearchScope (SearchControls.roleSubtree);
    Pourtant si je fais un System.out.println de roleSubtree, il m'affiche SUBTREE_SCOPE

    Est-ce que quelqu'un pourrait m'aider svp ?

    Merci d'avance.

  2. #2
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    Salut,

    Tu n'aurais des problèmes de visibilité de variables ???

    roleSubtree est déclaré privée ou public ( ou protégé ... )?

    Il faudrait ptet plus d'infos sur roleSubtree car c'est elle qui pose pb

  3. #3
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Salut!

    roleSubtree est déclarée mon fichier properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    roleSubtree=SUBTREE_SCOPE
    Je récupère cette variable depuis mon main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String propFile = System.getProperty("Dir.properties");
    FileInputStream in = new FileInputStream(propFile);
    Properties prop = new Properties();
    prop.load(in);
    in.close();
     
    roleSubtree= (String)prop.getProperty("roleSubtree");
    J'utilise ensuite cette variable dans la méthode :
    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
    46
    47
    48
    49
    50
    51
     
    public void printGroups (String roleBase, String roleSubtree, String roleSearch,
      String roleName, String uid, String dn)
      throws ch.esnig.ldap.ClientLDAPException {
        try {
          // Créer le contrôle de recherche
          SearchControls searchCtls = new SearchControls();
          // Spécifier le search scope
          System.out.println ("roleSubtree " + roleSubtree);
          searchCtls.setSearchScope (SearchControls.SUBTREE_SCOPE);
     
          // Spécifier la base de la recherche
          String searchBase = roleBase;
          // Spécifier le filtre de recherche LDAP
          String searchFilter = roleSearch;
          // Spécifier les attributs à retourner
          System.out.println ("roleName " + roleName);
          String returnedAttrs[]={roleName};
          searchCtls.setReturningAttributes(returnedAttrs);
          // Rechercher les objets utilisant le filtre
          NamingEnumeration answer = ctx.search(searchBase, searchFilter, searchCtls);
          // Parcourir et afficher les résultats de la recherche
          while (answer.hasMoreElements()) {
            SearchResult sr = (SearchResult)answer.next();
            System.out.println("Groupe : " );
            String groupe = sr.getName();
     
            System.out.println (groupe);
            Attributes attrs = sr.getAttributes();
            if (attrs != null) {
              try {
                NamingEnumeration ae = attrs.getAll();
                while (ae.hasMore()) {
                   Attribute attr = (Attribute)ae.next();
                   System.out.println (attr.getID() + " : ");
    	       NamingEnumeration e = attr.getAll();
                   while (e.hasMore()) {
                   System.out.println("       " + e.next());
    	      }
                }
              }
    	  catch (NamingException e) {
                throw new ch.esnig.ldap.ClientLDAPException("Error : Listage des groupes! (printGroups)", e );
    	  }
            }
          }
        }
        catch (javax.naming.NamingException ex) {
          throw new ch.esnig.ldap.ClientLDAPException("Error : Recherche du directory! (printGroups)", ex );
        }
      }
    Dans cette méthode, si j'affiche la valeur de roleSubtree, ça m'affiche bien SUBTREE_SCOPE.

    Alors je ne comprends pas bien pourquoi mon filtre ne fonctionne pas...

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Pourquoi ton filtre devrait fonctionner?

    Tu n'affectes roleSubtree à aucune variable et tu ne passes à aucune méthode.

    Dans la méthode printGroups, tu ne fais que l'afficher.
    Bien le bonjour chez vous
    Jowo

  5. #5
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Désolée...
    Mon filtre se présente plutôt comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    searchCtls.setSearchScope (SearchControls.roleSubtree);
    Mais ça ne marche pas...

  6. #6
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    Bon on va essayer de y arriver

    public void printGroups (String roleBase, String roleSubtree, String roleSearch,
    String roleName, String uid, String dn)
    throws ch.esnig.ldap.ClientLDAPException {
    try {
    // Créer le contrôle de recherche
    SearchControls searchCtls = new SearchControls();
    // Spécifier le search scope
    System.out.println ("roleSubtree " + roleSubtree);
    searchCtls.setSearchScope (SearchControls.SUBTREE_SCOPE);
    Vu que tu affiches "roleSubtree" avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println ("roleSubtree " + roleSubtree);
    pourquoi mets tu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      searchCtls.setSearchScope (SearchControls.SUBTREE_SCOPE);
    et pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     searchCtls.setSearchScope (roleSubtree);
    ???

    Commençons par comparer des choses comparables, non ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Heureusement que Noël approche, tu pourras te reposer

    Ce serait pas plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    searchCtls.setSearchScope (roleSubtree);
    Bien le bonjour chez vous
    Jowo

  8. #8
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    J'ai essayé cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    searchCtls.setSearchScope (roleSubtree);
    mais j'obtiens l'erreur suivante :
    [code]
    .\src\ch\esnig\ldap\ClientLDAP.java:105: setSearchScope(int) in javax.naming.directory.SearchControls cannot be applied to (java.lang.String) searchCtls.setSearchScope (roleSubtree);
    [code]

    De quoi provient cette erreur ?

    Désolée je suis débutante...


    [/code]

  9. #9
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    Il faut "caster" en un entier ( int )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    searchCtls.setSearchScope (Integer.parseInt(roleSubtree));
    Voilà

    Ps: il faut quand même que roleSubTree soit un numérique sous forme d'une chaine ( "11" deviendra 11 etc.)

  10. #10
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    setSearchScope attend un int.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SearchControls.OBJECT_SCOPE,
    SearchControls.ONELEVEL_SCOPE ou
    SearchControls.SUBTREE_SCOPE
    Il faut que tu convertisses ton roleSubTree en un int.

    Qu'elles sont les valeurs possibles pour ton roleSubTree?
    Bien le bonjour chez vous
    Jowo

  11. #11
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Merci pour ces infos.

    J'ai essayé la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     searchCtls.setSearchScope (Integer.parseInt(roleSubtree));
    mais j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Exception in thread "main" java.lang.NumberFormatException: For input string: "SUBTREE_SCOPE"
            at java.lang.NumberFormatException.forInputString(NumberFormatException.
    java:48)
            at java.lang.Integer.parseInt(Integer.java:447)
            at java.lang.Integer.parseInt(Integer.java:497)
            at ch.esnig.ldap.ClientLDAP.printGroups(ClientLDAP.java:105)
            at ch.esnig.ldap.ClientLDAPUI.main(ClientLDAPUI.java:93)
    Est-ce que quelqu'un pourrait m'aider SVP?

  12. #12
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    Est-ce que quelqu'un pourrait m'aider SVP?
    C'est ce qu'on essaie de faire GRRRRRRRRRRRRR!

    Peux tu nous dire la valeur de roleSubtree quand tu l'affiches ?

  13. #13
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Salut jowo!

    Qu'entends-tu par "valeurs possibles pour mon roleSubTree?"

  14. #14
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Désolée fremsoi je ne voulais pas te froisser.
    Je suis très contente de l'aide de tout le monde!

    Voilà le résultat affiché pour ma variable roleSubtree : SUBTREE_SCOPE

  15. #15
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    je sais que tu débutante mais as-tu les bases nécessaires en informatique pour ce genre de programme?

    Vouloir convertir le string "SUBTREE_SCOPE" en un int, je pense que tu dois réfléchir un peu avant d'effectuer des modifications de ton code.
    Bien le bonjour chez vous
    Jowo

  16. #16
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Voici pour la petite histoire jowo,

    Je dois faire ce travail dans le cadre de mon travail de diplôme, et ça fait quatre semaine que j'ai pris en mains Java, JNDI, Openldap...

    Alors je dois avouer que pour certaines tâches, j'ai vraiment de la peine. Mais il faut quand même que j'y arrive, alors c'est pour ça que je fais appel à vous!

  17. #17
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Ok pas de problème.

    Mais parfois il est préférable de sortir pour s'aérer et surtout pour éliminer le STRESS d'un travail de diplôme.


    On revient à nos moutons:

    Avec quelle version de java travailles-tu (1.4 ou 1.5)?

    Je te conseille de créer une classe qui "wrappe" les valeurs possibles pour la méthode setSearchScope.

    Valeur possible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static final int OBJECT_SCOPE = 0;
    public static final int ONELEVEL_SCOPE = 1;
    public static final int SUBTREE_SCOPE = 2;
    Bien le bonjour chez vous
    Jowo

  18. #18
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    Voici 2 adresses qui te seront surement utiles

    exemple de scope :
    http://java.sun.com/products/jndi/tu...ory/scope.html

    api :
    http://java.sun.com/j2se/1.3/docs/ap...hControls.html

    Essaie de comprendre le système et si tu y arrives pas renvoi un post !
    Tiens nous au courant dès que tu as des souci

    ps: je suis pas froissé c'était une blague

  19. #19
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    SUBTREE_SCOPE

    public static final int SUBTREE_SCOPE

    Search the entire subtree rooted at the named object.

    If the named object is not a DirContext, search only the object. If the named object is a DirContext, search the subtree rooted at the named object, including the named object itself.

    The search will not cross naming system boundaries.

    The NamingEnumeration ...
    The value of this constant is 2.
    Vu que la valeur est 2, essaie ( juste pour tester car ce n'est pas un code propre )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    searchCtls.setSearchScope (2);

  20. #20
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Heureuse que tu ne sois pas froissé frermsoi!

    J'utilise la version 1.5 de java, jowo.

    Et si j'écris cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public int getNumberScope (String scope) {
        if (scope.equals ("OBJECT_SCOPE")) {
          return 0;
        }
         if (scope.equals ("ONELEVEL_SCOPE")) {
          return 1;
         }
         else {
           return 2;
         }
      }
    est-ce que ça pourrait également fonctionner ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. syntaxe cpl (combined programming language)
    Par lao.patrick dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 07/05/2010, 18h09
  2. Cdonts Html probl syntaxe
    Par bambino13 dans le forum ASP
    Réponses: 1
    Dernier message: 10/06/2009, 11h21
  3. [Syntaxe] PETIT probl avec un Jlabel
    Par blackcrow1981 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/09/2006, 19h53
  4. vive la syntaxe des languages !
    Par D@rKness74 dans le forum Windows
    Réponses: 2
    Dernier message: 15/09/2004, 13h56
  5. je veux apprendre la programmation quel language choisir??
    Par existance dans le forum Débuter
    Réponses: 26
    Dernier message: 06/08/2002, 05h32

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