Bonjour,
je travaille sur un programme qui doit utiliser un stream pour télécharger un fichier PDF à partir d'un lien dans une page Web JSTL
Le programme fonctionne (le téléchargement se fait bien) mais j'ai toujours le message :
je n'arrive pas à trouver la cause.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ERROR [http-0.0.0.0-8000-Processor1] core.StandardWrapperValve (StandardWrapperValve.java:253) - Servlet.service() for servlet jsp threw exception java.lang.IllegalStateException: getOutputStream() has already been called for this response
si je mets des traces dans le programme JSP lorsque je clique sur le lien de ma page web, la trace est bien affichée avant d'afficher l’exception. Du coup je ne sais pas où se situe le problème.
Je ne sais plus où chercher.
Extrait de ma page web
gestion du stream dans mon programme JSP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <table> <c:forEach items="${myList3}" var="item"> <tr> <td> <a href="lire.jsp?url=<c:out value="${item.lienAcces}" />"><c:out value='${item.lienAffiche}'/></a> </td> </tr> </c:forEach> </table>
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 try { BufferedInputStream bis = new BufferedInputStream(connection.getInputStream()); OutputStream out1 = (OutputStream)response.getOutputStream (); response.setContentType( "application/pdf" ); BufferedOutputStream bos = null; bos = new BufferedOutputStream(out1); byte[] buff = new byte[2048]; int bytesRead; while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) { bos.write(buff, 0, bytesRead); } if (bis != null) bis.close(); if (bos != null) bos.close(); System.out.println("affiche ce message avant d'afficher le message d'erreur !!!") }
merci d'avance pour vos idées
Partager