Salut tout le monde. Je n'arrive pas à afficher un PDF dans le browser. Est-ce que quelqu'un a un exemple concret, svp?
J'ai essayé d'appliquer la technique suivante (reprise dans le tutoriel de JasperReports):
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
public class ReportGenerator {

    public void generateReport(ActionEvent event)
	    throws ClassNotFoundException, SQLException, IOException,
	    JRException {
	
	Connection connection;
	FacesContext context = FacesContext.getCurrentInstance();
	HttpServletResponse response = (HttpServletResponse) context
		.getExternalContext().getResponse();
	InputStream reportStream = context.getExternalContext()
		.getResourceAsStream("/src/reports/mysqlReport.jasper");

	ServletOutputStream servletOutputStream = response.getOutputStream();
	Class.forName("com.mysql.jdbc.Driver");
	connection = DriverManager
		.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=pwd");
	JasperRunManager.runReportToPdfStream(reportStream,
		servletOutputStream, new HashMap<String, String>(), connection);
	connection.close();
	response.setContentType("application/pdf");
	servletOutputStream.flush();
	servletOutputStream.close();
    }
}
Ma page jsp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1234567891011
 
<f:view>
	<h:outputText value="Click on the link below to generate the
report." />
	<h:form>
		<h:commandLink action="generate_report"
			actionListener="#{reportGenerator.generateReport}">
			<h:outputText value="Generate Report" />
		</h:commandLink>
	</h:form>
</f:view>
Mais là ils utilisent MyFaces et avec jsf de SUN_RI cea ne fonctionne pas
Ca donne l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
GRAVE: Received 'java.lang.NullPointerException' when invoking action listener '#{reportGenerator.generateReport}' for component 'j_id_jsp_320462548_3'
22-nov.-2007 12:35:42 javax.faces.event.MethodExpressionActionListener processAction
GRAVE: java.lang.NullPointerException
	at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2264)
	at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2277)
	at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2748)
....
et à la fin ceci:
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-nov.-2007 12:35:42 com.sun.faces.lifecycle.LifecycleImpl phase
ATTENTION: executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@4e2f0a) threw exception
javax.faces.FacesException: org.apache.jasper.JasperException: An exception occurred processing JSP page /generate.jsp at line 12
 
9: <title>Report Generation</title>
10: </head>
11: <body>
12: <f:view>
13: 	<h:outputText value="Click on the link below to generate the
14: report." />
15: 	<h:form>
 
 
Stacktrace:
	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:413)
	at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
...
Merci pour l'aide.