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

  1. #1
    Membre confirmé
    Problème de lecture fichier properties dans WAR et pas dans WEB-INF
    Bonjour

    J'ai récupéré un projet existant ou le fichier .properties se trouve directement dans la racine du .war (ce projet n'est pas sous Maven).
    J'ai essayé différentes techniques pour le lire sans succès :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
     Thread.currentThread().getContextClassLoader().getResourceAsStream

    ou
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    this.getClass().getClassLoader().getResourceAsStream

    ou
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
           InputStream in = this.getClass().getClassLoader().getResourceAsStream(file1);
           InputStream in = com.google.gwt.user.server.rpc.RemoteServiceServlet.class.getResourceAsStream(file1);
           path = RequestFactoryServlet.getThreadLocalServletContext().getRealPath(file1);
           InputStream in = ServletContext.class.getResourceAsStream(file1);
           URL url = com.google.gwt.user.server.rpc.RemoteServiceServlet.class.getClassLoader().getSystemResource("/"+file1);
           InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(file1);
      InputStream in = ServletContext.class.getResource("/"+file1).openStream();  
    ResourceBundle rb = ResourceBundle.getBundle(file1,Locale.ROOT);

    J'essaye bien d'accéder au projet depuis la partie serveur

    Merci d'avance

    Phil

  2. #2
    Expert éminent sénior
    Salut,


    getResource() permet de récupérer un fichier dans le classpath, or la racine du war ne fait pas partie du classpath.

    Pour utiliser getResource() il faudrait le déplacer dans /WEB-INF/classes (ou plus simplement le mettre avec tes sources, l'EDI s'occupant du reste).
    Sinon il faut utiliser getRealPath() pour obtenir le chemin d'un fichier du projet Java EE.

    Mais attention car par défaut en mettant le fichier à la racine, il est accessible en dehors de l'application (ce qui pourrait poser des problème de sécurité selon son contenu).


    a++
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre confirmé
    Bonjour

    Mon server WildFly retourne null sur le getRealPath

  4. #4
    Expert éminent sénior
    Tu dois utiliser getResource sur le ServletContext pas sur le classloader.
    David Delbecq Java developer chez HMS Industrial Networks AB.    LinkedIn | Google+

  5. #5
    Expert éminent sénior
    Où est ton fichier exactement ?
    Quel est le code que tu utilises ?


    a++
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  6. #6
    Membre confirmé
    bonjour

    Le fichier est dans le répertoire racine du .war pas dans WEB-INF ni classes

  7. #7
    Membre confirmé
    J'ai mis cela dans un répertoire a part avec une variable d'environnement coté serveur JBOSS

###raw>template_hook.ano_emploi###