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 :

Problème récupération d'un fichier de mon application


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut Problème récupération d'un fichier de mon application
    Bonjour,

    J'utilise l'api jasper pour générer des fichiers Word et Pdf et pour cela il faut un fichier source .jrxml. J'ai placé ce fichier dans le dossier: "MonApp/web/src".

    J'essaie ensuite de le récupérer en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FileInputStream fis = new FileInputStream("http://localhost:8080/MonApp/src/monFichier.jrxml");
    Comme je faisais pour une image et ce code fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Image image = null;
                try {
                    image = Image.getInstance("http://localhost:8080/MonApp/src/image.jpg");
                } catch (Exception ex) {
                    Logger.getLogger(CreateFile.class.getName()).log(Level.SEVERE, null, ex);
                }
    J'ai une exception FileNotFound car les Slash sont changés en Back Slash:
    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
     
    GRAVE: null
    java.io.FileNotFoundException: http:\localhost:8080\MonApp\src\ConvocationType.jrxml (Syntaxe du nom de fichier, de répertoire ou de volume incorrecte)
    	at java.io.FileInputStream.open(Native Method)
    	at java.io.FileInputStream.<init>(FileInputStream.java:120)
    	at MonApp.javaClass.tools.CreateFile.createWordConvocation(CreateFile.java:113)
    	at MonApp.javaClass.tools.PdfTest.testCreateWordConvocation(PdfTest.java:99)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    	at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
    	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
    	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
    	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    	at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
    	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
    	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
    	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)

    Si vous avez une solution à ce problème, je suis preneur.

    Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileInputStream fis = new FileInputStream("http://localhost:8080/MonApp/src/monFichier.jrxml");
    Je te deconseillerai de récupérer tes ressources en procédant comme ci dessus. Même si ça marchait, suppose que demain le nom de l'appli ou le port change? eh ben rien ne marchera plus , ou tu devras te taper un Find/replace dans ton projet, pas propre tout ça. Le bon usage c'est de récupérer le chemin de ton contexte webapp et le concaténer au nom physique de ton fichier afin d'avoir le nom complet.Je n'ai pas beaucoup d'infos sur le framework controlleur que tu utilises (struts, jsf,spring-mvc, servlet simple) et donc je ne peux mieux t'aider sur comment le faire niveau écriture code.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Merci de ta réponse,

    J'utilise le framework Spring-mvc, mais pour toute mon appli, j'ai beaucoup tapé de code sans spring.

    Voila merci encore

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par Spiritkill Voir le message
    Merci de ta réponse,

    J'utilise le framework Spring-mvc, mais pour toute mon appli, j'ai beaucoup tapé de code sans spring.

    Voila merci encore
    Dans ton controleur spring mvc, récupère une réference sur la servletContext, et cette dernière te donnera le path de ton context, auquel tu rajoutera le nom physique de ton fichier. Ils expliquent un peu comment récupérer la servletContext ici

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Parfait merci,

    En fait je l'utilisais déjà mais pas de partout: pas dans mes jsp.

    Pour mes jsp je dois l'envoyer en attribut ou il y a un autre moyen?

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Tu peux l'envoyer en attribut. Cette factorisation évite d'être dependant du nom du projet.

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    En fait j'ai encore un petit problème:

    il faudrait que j'envoie à mes jsp un String contenant: "http://host:port/context/" mais j'ai pas trouvé de fonction me permettant de retourner ceci dans la request ou le ServletContext.

    Comment dois-je procéder?


    Merci

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par Spiritkill Voir le message
    En fait j'ai encore un petit problème:

    il faudrait que j'envoie à mes jsp un String contenant: "http://host:port/context/" mais j'ai pas trouvé de fonction me permettant de retourner ceci dans la request ou le ServletContext.

    Comment dois-je procéder?


    Merci
    Ca c'est une autre question n'ayant rien à voir avec la question précedente, le mieux c'est de créer un autre post.

  9. #9
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    J'ai trouvé la solution. Je la donne là, mais dois-je quand même créer un sujet pour que les personnes recherchant ceci le trouve plus facilement?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath()
    Voila merci bien

  10. #10
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Tu peux le faire si t'as le temps, mais bon à l'avenir tu sauras désormais comment ca marche sur le forum.
    Bonne suite

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

Discussions similaires

  1. Ajouter un fichier pdf à mon application
    Par Jiyuu dans le forum VB.NET
    Réponses: 16
    Dernier message: 23/10/2007, 14h52
  2. [Tableaux] problème récupération type de fichier
    Par Methode dans le forum Langage
    Réponses: 2
    Dernier message: 13/02/2007, 22h11
  3. problème lors de l'utilisation de mon application
    Par dododi dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/10/2006, 19h35
  4. [Upload] Problème pour uploader un fichier dans mon code
    Par Peuplarchiste dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2006, 09h48
  5. Réponses: 3
    Dernier message: 29/10/2004, 13h54

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