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

Servlets/JSP Java Discussion :

Question sur le classPath


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut Question sur le classPath
    Bonjour,
    Je souhaite récupérer un fichier config.properties situer dans mon WEB-INF.
    Dans une servlet, j'utilise un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Properties properties = new Properties();
            InputStream is = this.getClass().getResourceAsStream(fileName+".properties");
            try{
                properties.load(is);
                return properties;
            } finally{
                is.close();
    }
    Ma question est :
    Est-il possible de faire la même chose avec une classe situer dans src?
    Parce cette méthode ne marche pas dans une classe pour un fichier dans le WEB-INF

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 141
    Par défaut
    Bonsoir, déjà cela dépend de ton type de projet. Si t'es dans un projet dynamique Web, tous les fichiers configurer dans ton src est copié dans ton WEB-INF/classes implicitement, en effet si tu démarre ton projet depuis Eclipse ils sont copiés dans ton dossier build. donc classpath=src=WEB-INF/classes. Si t'es dans un projet Java simple, ton soit ton classpath=src si tu démarres ton projet depuis Eclipse, et en mode Web ton classpath=WEB-INF/classes, il faudra le alors copier tous tes fichiers du src dans ton WEB-INF/classes pour qu'ils soient pris en compte par l'application. Pour accéder à ton WEB-INF, il faut le préciser, sinon utiliser un ClassLoader, afin de récupérer facilement tous tes fichiers, sinon y a toujours le protocole file...

  3. #3
    Membre éclairé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    Je suis dans un projet web et je voudrais qu'une de mes classes accède a un config.properties situer dans web-inf.
    C'est possible ça? et avoir le code serait vraiment top

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 141
    Par défaut
    Utilises un ResourceBundle, mais tu dois lui donner le chemin de ton fichier properties en sachant que "." est la racine de ton projet. sinon comme je t'es dit t'as les protocoles classpath, file ...

  5. #5
    Membre éclairé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    Bon j'ai décider de faire autrement .
    Je récupère le chemin du dossier contenant les configs comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     File f = new File(this.getServletContext().getRealPath("/")+"WEB-INF/config");
    Ensuite je fais appel a cette méthode dans ma servlet Dispatcher pour charger en session l'ensemble des fichier .properties

    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
     
     public void listeRepertoire ( File repertoire ) throws IOException {
            System.out.println(this.request);
            if ( repertoire.isDirectory ( ) ) {
                    File[] list = repertoire.listFiles();
                    if (list != null){
    	                for ( int i = 0; i < list.length; i++) {
    	                        // Appel récursif sur les sous-répertoires
    	                        listeRepertoire( list[i]);
    	                } 
                    } else {
                    	System.err.println(repertoire + " : Erreur de lecture.");
                    }
            } else {
                String[] splitName = repertoire.getName().split("\\.");
                String ext = splitName[1];
                if("properties".equals(ext)){
                    System.out.println(repertoire.getAbsolutePath());
                    Properties prop =                    this.loadProperties(repertoire.getAbsolutePath());
                    System.out.println("[Dispatche ligne 175] " + prop.getProperty("databaseConf"));
                    this.request.setProperties(splitName[0], prop);
                }
            }
        }
    Le problème c'est que j'ai un null pointer execption sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.request.setProperties(splitName[0], prop);
    . Il n'arrive pas à accéder à l'attribut request de cette même servlet. Je ne comprend pas pourquoi. je pense que cela viens de la récursivité mais je ne voit pas comment corrigé le problème

  6. #6
    Membre éclairé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    Oups dsl erreur d'inatention, je n'avais pas initialisé le paramètre request avant de l'utiliser. Donc résolus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. question sur classpath
    Par root76 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 10/11/2006, 10h23
  2. [debutant] question sur JCreator ? (son classpath)
    Par easyman dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 3
    Dernier message: 25/10/2005, 08h56
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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