Bonjour , j'ai un petit problème avac jsper, j'ai réussi à génerer mon pdf et l'enregistrer sous le serveur, reste maintenant comment afficher tout d'abord la fenetre demandant l'enregistrement avant de finir .
j'ai toujours un problème de loading Page Can not be found
Code : Sélectionner tout - Visualiser dans une fenêtre à part
  problème de loading  Page Can not be found http://localhost:8083/Gestion_Projet/faces/vues/jasper/dd.pdf
voila mon bean:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
package com.cylande.managedBeans;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
 
 
 
import javax.faces.component.html.HtmlInputText;
import javax.faces.context.FacesContext;
import javax.faces.convert.DateTimeConverter;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
import com.cylande.reporting.Rapport;
 
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
public class RapportBean {
 
	String nom_rap;
 
		public String getNom_rap() {
		return nom_rap;
	}
 
		private String chemin;
	    javax.faces.convert.DateTimeConverter select_date;
 
 
	    public Connection getConnection() {
			return connection;
		}
 
		public void setConnection(Connection connection) {
			this.connection = connection;
		}
 
		public ResultSet getRs() {
			return rs;
		}
 
		public void setRs(ResultSet rs) {
			this.rs = rs;
		}
 
		public ResultSet getRs1() {
			return rs1;
		}
 
		public void setRs1(ResultSet rs1) {
			this.rs1 = rs1;
		}
 
		public ResultSet getRs2() {
			return rs2;
		}
 
		public void setRs2(ResultSet rs2) {
			this.rs2 = rs2;
		}
 
		public Statement getStm() {
			return stm;
		}
 
		public void setStm(Statement stm) {
			this.stm = stm;
		}
 
		public Statement getStm1() {
			return stm1;
		}
 
		public void setStm1(Statement stm1) {
			this.stm1 = stm1;
		}
 
		public Statement getStm2() {
			return stm2;
		}
 
		public void setStm2(Statement stm2) {
			this.stm2 = stm2;
		}
 
		public Statement getStm3() {
			return stm3;
		}
 
		public void setStm3(Statement stm3) {
			this.stm3 = stm3;
		}
 
		public void setNom_rap(String nomRap) {
			nom_rap = nomRap;
		}
 
		private Date date;
 
	    private Connection connection = null;
 
	    private ResultSet rs, rs1, rs2 = null;
 
	    private Statement stm, stm1, stm2, stm3 = null;
 
	    public Date getDate() {
	        return date;
	    }
 
	    public void setDate(Date date) {
	        this.date = date;
	    }
 
	    public String getChemin() {
	        return chemin;
	    }
 
	    public void setChemin(String chemin) {
	        this.chemin = chemin;
	    }
 
 
 
	    public DateTimeConverter getSelect_date() {
	        return select_date;
	    }
 
	    public void setSelect_date(DateTimeConverter select_date) {
	        this.select_date = select_date;
	    }
 
	    public Date StringtoDate(String str) throws Exception {
	        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	        Date sDate = sdf.parse(str);
	        return sDate;
	    }
 
	    public static String long2ip(long ip) {
 
	        int[] b = new int[4];
	        b[0] = (int) ((ip >> 24) & 0xff);
	        b[1] = (int) ((ip >> 16) & 0xff);
	        b[2] = (int) ((ip >> 8) & 0xff);
	        b[3] = (int) (ip & 0xff);
	        String x;
	        x = Integer.toString(b[0]) + "." + Integer.toString(b[1]) + "." + Integer.toString(b[2]) + "." + Integer.toString(b[3]);
	        return x;
	    }
 
	    @SuppressWarnings("unchecked")
		public void CreerRapport() throws SQLException, ClassNotFoundException, Exception {
 
	        try {
 
	            String url = "jdbc:mysql://localhost:3306/testlll";
	            String login = "root";
	            String password = "";
	            try {
	                // - Connexion à la base
 
	                Class.forName("com.mysql.jdbc.Driver");
 
	            } 
 
	            catch (ClassNotFoundException ex) {
 
	                Logger.getLogger(Rapport.class.getName()).log(Level.SEVERE, null, ex);
	            }
 
	            connection = DriverManager.getConnection(url, login, password);
 
	            System.out.println("?????????????????????????");
 
	            HttpSession s = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
	            final ServletContext servletContext = s.getServletContext();
 
	       String contextPath = servletContext.getContextPath();
 
	            String context1 = FacesContext.getCurrentInstance().getExternalContext().getInitParameter("/jasper");
 
	            servletContext.getResourceAsStream("/jasper/essai.jrxml");
 
	            File rapports = new File(servletContext.getRealPath("jasper"));
 
 
	           System.out.println( "000000000000"  +rapports.getAbsolutePath());
 
	            rapports.mkdirs();
 
	            InputStream input = servletContext.getResourceAsStream("/jasper/essai.jrxml");
 
	            JasperDesign jasperDesign = JRXmlLoader.load(input);
 
	            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
 
	            Map parameters = new HashMap();
 
	            parameters.put("Titre", "Titre");
 
	            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
 
	            FacesContext context = FacesContext.getCurrentInstance();
 
 
	        JasperExportManager.exportReportToPdfFile (jasperPrint, rapports +  "/" + getNom_rap() + ".pdf");
 
	       connection.close();
	       	    System.out.println("1");   	       
	       FacesContext.getCurrentInstance().getExternalContext().redirect("jasper/" + getNom_rap() + ".pdf");
	       System.out.println("2");  
	       FacesContext.getCurrentInstance().responseComplete();  
	       System.out.println("3");  
	      byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
	      System.out.println("4");  
 
	      HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
 
	      System.out.println("5");   
	      response.addHeader("Content-disposition", "attachment;filename=" + getNom_rap() + ".pdf");
	      System.out.println("6");    
	      response.setContentLength(bytes.length);
 
	       response.getOutputStream().write(bytes);
 
	       response.setContentType("application/pdf");
 
	       System.out.println("7");    
 
	      context.responseComplete();
 
 
 
 
 
	       OutputStream outputStream = response.getOutputStream();
 
	       outputStream.flush();
 
	       outputStream.close();
 
	        } catch (JRException e) {
	            e.printStackTrace();
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
 
	    }
 
 
 
}
et le .xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<a4j:form>
 
<h:commandButton   value="consulter"  action="#{rapportBean.CreerRapport}"/>  
<h:inputText value="#{rapportBean.nom_rap}" />
</a4j:form>