Bonjour,
Je suis en stage et je dois réaliser une gestion des devis à l'aide de la technologie JSP.
Dans l'état actuel des choses l'utilisateur peut créer un devis qui est stocké dans une base de données.
Le problème est le suivant : à l'aide des informations de la base de données je dois créer un PDF avec la librairie iText.
J'ai récupéré un code du site officiel et je l'ai testé, mais une erreur intervient :
Mon code (enfin celui du site) est le suivant :org.apache.jasper.JasperException: java.lang.IllegalStateException: "getOutputStream()" a déjà été appelé pour cette réponse
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:450)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
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 <%@ page import="accessor.*" import="metier.*" import="java.io.*" import="com.itextpdf.*" import="com.itextpdf.text.*" import="com.itextpdf.text.pdf.PdfWriter" session="true" %> <% response.setContentType("application/pdf"); Document document = new Document(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); PdfWriter.getInstance(document, buffer); document.open(); document.add(new Paragraph("Hello World")); document.close(); //we output the writer as bytes to the response output DataOutput output = new DataOutputStream(response.getOutputStream()); byte[] bytes = buffer.toByteArray(); response.setContentLength(bytes.length); for(int i = 0; i < bytes.length; i++) { output.writeByte(bytes[i]); } %>
Partager