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 :

Lire le manifest d'une webapp


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 10
    Par défaut Lire le manifest d'une webapp
    Bonjour à tous,

    je développe une application client serveur Java déployé sous Tomcat. J'aimerais côté client, lire le manifest côté serveur pour afficher le n° de version du projet.
    Sous Tomcat_HOME/webapp/mawebapp, j'ai un fichier MANIFEST.MF sous META-INF et j'essaie d'y accéder de la sorte :
    http://localhost:8080/mawebapp/META-INF/MANIFEST.MF.
    Mais le fichier est inaccessible. Comment le rendre accessible ?
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu va devoir le servir à partir d'une servlet, car tomcat refusera de transférer, par lui même, ce qui ce trouve dans META-INF ou WEB-INF, par sécurité.

  3. #3
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 10
    Par défaut Lire le manifest d'une webapp
    Ok merci, effectivement ça marche. J'ai fait ça à l'ancienne. Je suis à la recherche de 2 améliorations:
    1. Ma servlet est initialisé au démarrage pour afficher le message, comment la détruire dans la foulée ?
    2. le chemin d'accès au fichier est exprimé à partir du TOMCAT_HOME/bin... comment l'exprimer à partir du répertoire racine de la webapp (par exemple: getServletContext...) ?


    Voici ma webapp à l'init:
    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
     
    public void init(ServletConfig config) {
    	String file;
    	try {
    		super.init(config);
    		file = getInitParameter("manifest");
    		printManifest(file);
    	} catch (Exception e) {
    			log.error("Error while reading parameter", e);
    	}
    }
     
    private void printManifest(String manifest) {
            try {
    		File f = new File(manifest);
    		Manifest mf = new Manifest(new FileInputStream(f));
    		Attributes atrs = mf.getMainAttributes();
    		java.util.Set<Object> keys = atrs.keySet();
    		Iterator<Object> itAtr = keys.iterator();
    		while (itAtr.hasNext()) {
    			Object key = itAtr.next();
    			log.info("\t[" + key + "=" + atrs.getValue(key.toString()) + "]");
    		}
    	} catch (Exception e) {
    		log.error("Error while reading date in manifest", e);
    	}
    }
    et mon fichier web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <servlet>
    	<servlet-name>manifest_read</servlet-name>
    	<servlet-class>fr.dcn.sice.base.ReadManifestServlet</servlet-class>
    		<init-param>
    			<param-name>manifest</param-name>
    			<param-value>../webapps/mawebapp/META-INF/MANIFEST.MF</param-value>
    		</init-param>
    	<load-on-startup>1</load-on-startup>
    </servlet>

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    heeu, pourquoi tu passe pas betement dans ta servlet par un getRessource("/META-INF/MANIFEST.MF") au lieu de passer le path? Et si tu dois juste afficher çà au démarrage de l'application, utilise plutot un contextlistener qu'une servlet.

  5. #5
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 10
    Par défaut Lire le manifest d'une webapp
    Parce que ça retourne null...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    getServletContext().getResourceAsStream("META-INF/MANIFEST.MF")
    getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF")

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    je pensais plutôt à java.lang.Class.getResource

  7. #7
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 10
    Par défaut Lire le manifest d'une webapp
    Enfin de compte ça marche en déployant le war (mais pas sous Eclipse)... pas trop le temps de chercher à comprendre, ça me convient comme ça. Merci pour ton aide.

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    eclipse ne transfère pas les fichiers vers tomcat, il joue juste avec le classloader

Discussions similaires

  1. [VB+Lotus Notes] Lire les données d'une DB Lotus
    Par kenn dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/08/2005, 15h21
  2. [JSF] Portage d une webapp struts
    Par SEMPERE Benjamin dans le forum JSF
    Réponses: 4
    Dernier message: 13/05/2005, 13h39
  3. [ plugin ] Répertoire d'images dans une webapp
    Par mille_furies dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/03/2004, 15h41
  4. [tomcat]chargement dynamique de classes depuis une webapp
    Par alphamax dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/03/2004, 09h59
  5. [Debutant]contexte d'une Webapp servlet et jsp
    Par yahia dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/10/2003, 10h43

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