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 :

spécifier l'emplacement des fichiers externes.


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Par défaut spécifier l'emplacement des fichiers externes.
    Bonjour


    J'ai un certain nombre de problèmes liés au fait que mon application va chercher les fichiers tantôt dans HOME_TOMECAT/apache-tomcat-6.0.16/bin/, tantôt dans HOME_PROJET/mon_application_web/.


    Exemple : Mon application crée des fichiers. Ceux ci sont créés dans HOME_TOMECAT/apache-tomcat-6.0.16/bin/. Mon application a besoin d'appeler un programme C. Celui-ci doit être dans HOME_TOMECAT/apache-tomcat-6.0.16/bin/. Mais par contre si je veux que l'utilisateur puisse télécharger les fichiers, il va les chercher dans HOME_PROJET/mon_application_web/ ce qui me génère une magnifique erreur.


    Je pourrais m'en sortir en mettant des liens absolus, mais cela nuirait énormément à la portabilité de mon programme. C'est pourquoi je recherche un moyen de spécifier que tous les fichiers externes (créés ou appelés) soient par exemple dans HOME_PROJET/mon_application_web/extern_files, et que l'appli aille les chercher/créer là par défaut.

    Pouvez vous m'aider svp?
    Mes cours sur l'écosystème Java EE - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Par défaut
    personne n'a jamais eu ce problème?

    Pourtant j'aurais cru que toute personne développant une application Web à base de servlets serait tombé dessus...
    Mes cours sur l'écosystème Java EE - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronné

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Par défaut
    Bon j'ai fini par trouver tout seul une manière de faire.

    D'abord la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String path;
    path=getServletContext().getRealPath("/NomServlet");
    permet de connaitre le chemin d'accès vers le Servlet.

    Ensuite la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File f;
    f=new File(path);
    path=f.getParent();
    permet de remonter d'autant de crans que l'on veut dans l'arborescence.

    Pour enregistrer les fichiers où on veut, on se place sur la racine relative de son choix, et on fait par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File dir=new File(path+"/web/C_files");
    String dirPath=path+"/web/C_files/";
    Après, dans le cadre d'un fichier temporaire, on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File nf=File.createTempFile("prefixe", ".temp", dir);
    nf.deleteOnExit();

    Et si on veut exécuter dessus un programme C nommé test situé dans ce chemin relatif, on fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String Command=dirPath+"./test "+dirPath+nf.getname();
    Runtime runtime = Runtime.getRuntime();
    Process p = runtime.exec(Command);
    Pour conclure, il y a surement moyen de faire plus proprement les choses en éditant convenablement le fichier Web.xml, mais je n'ai pas trouvé comment.
    Mes cours sur l'écosystème Java EE - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/03/2007, 10h18
  2. [log4j] emplacement des fichiers .log
    Par danyboy85 dans le forum Logging
    Réponses: 7
    Dernier message: 18/01/2007, 07h47
  3. Réponses: 5
    Dernier message: 15/09/2006, 14h26
  4. Réponses: 14
    Dernier message: 24/08/2006, 13h53
  5. [Smarty] Automatiser les appels des fichiers externes (CSS/JS etc)
    Par speedev dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 15/06/2006, 13h43

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