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 :

OutputStream dans Servlet (telecharger fichier)


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut OutputStream dans Servlet (telecharger fichier)
    bonjour,

    voila j'essaye télécharger un fichier via une servlet comme dans ce tuto page 22: http://mbaron.ftp-developpez.com/javaee/servlet.pdf

    seulement lors de l'éxecution de la servlet sur tomcat j'ai fait des affichage car ca tombait sur le catch.
    Donc, j'ai constaté que le probleme venait de cette ligne:

    OutputStream os = res.getOutputStream(); dans la methode doGet

    quelqu'un saurait-il pourquoi ?

    merci

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    quelles sont les erreurs?
    peux-tu mettre le résultat de :
    où e est l'exception levée dans le catch.

  3. #3
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    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
     
     
    java.lang.ArrayIndexOutOfBoundsException
    	at java.lang.System.arraycopy(Native Method)
    	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:330)
    	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
    	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
    	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
    	at HelloWorld.doGet(HelloWorld.java:59)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	at java.lang.Thread.run(Unknown Source)
    sachant que la ligne 59 c'est :

    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
     try{
             
             InputStream is = new FileInputStream("C:/Users/olive/Desktop/tmp/Forest.jpg");
             System.out.println("ici1");
             OutputStream os = res.getOutputStream();
             System.out.println("ici2");
             
             res.setContentType("text/plain");
             res.setHeader("Content-Disposition", "attachement;filename=Forest.jpg");
             
             int count;
             byte buf[] = new byte[4096];
             while((count = is.read(buf))>1);
             os.write(buf,0, count);
             is.close();
             os.close();
          }catch(Exception e){
             e.printStackTrace();
             System.out.println("y'a un probleme");
          }
          
          
       }
    
    }

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while((count = is.read(buf))>1);
    os.write(buf,0, count);
    Attention aux accolades!!!
    tu as écris une boucle... dans laquelle tu ne fais rien : instruction ";"!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while((count = is.read(buf))>1) {
    os.write(buf,0, count);
    }

  5. #5
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    bien joué !

    trop bête

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    tu devrais mettre "résolu" au post... tu as un bouton en ce sens en bas de la page.

  7. #7
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    c'est fait

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

Discussions similaires

  1. Créer fichier XML dans Servlet avec JDOM
    Par mzahir dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/07/2010, 13h41
  2. Telecharger fichier dans JSP généré par un autre programme
    Par ilellouc dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/08/2009, 11h30
  3. erreur servlet telechargement fichier
    Par info007 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/09/2008, 13h29
  4. Telecharger fichier dans un serveur
    Par mariam2001 dans le forum Servlets/JSP
    Réponses: 18
    Dernier message: 05/07/2007, 10h42
  5. Réponses: 2
    Dernier message: 06/02/2007, 16h16

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