Bonjour à tous. J'ai un souci sur l'impression avec ireport sur une application J2EE.
Voici le code la méthode qui le fait:
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
 
public String imprimer() {
        try {
 
            String reportPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("Reports/fiche_installation.jasper");
            Map parameters = new HashMap();
            parameters.put("REPORT_TITLE", "");
            parameters.put("generatedcode", unCode.getGeneratedcode());
            parameters.put("firstname", uneInstallation.getIdagent().getIduuser().getFirstname());
            parameters.put("lastname", uneInstallation.getIdagent().getIduuser().getLastname());
            parameters.put("dateprevueinstall", uneInstallation.getDateprevueinstall());
            parameters.put("qteappssupcash1", unCredit.getQteappsupcash1());
            parameters.put("qtesuppcredit1", unCredit.getQteappsupcredit1());
            list.add(uneInstallation);
            list.add(unCode);
            list.add(uneInstallation.getIdagent());
            list.add(unCredit);*/
            List<Installations> list = new ArrayList<Installations>();
            list.add(uneInstallation);
            JRBeanCollectionDataSource data = new JRBeanCollectionDataSource(listInstallations);
            File file = new File("C:\\Users\\LOCK-DOWN\\Documents\\NetBeansProjects\\uwip2.0.0\\uwip2-war\\web\\Reports\\fiche_installation.jasper");
            JasperPrint jasperPrint = JasperFillManager.fillReport(new FileInputStream(file), parameters);
            HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
            httpServletResponse.addHeader("Content-disposition", "attachment; filename=fiche_installation.pdf");
            ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();
            JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);
            servletOutputStream.flush();
            servletOutputStream.close();
            FacesContext.getCurrentInstance().responseComplete();
            msg = "Opération effectuée avec succès";
 
        } catch (Exception e) {
            e.printStackTrace();
            msg = "Echec de l'opération";
        }
        return "installations.xhtml?faces-redirect=true";
    }
Le serveur Glassfish envoi le message suivant:
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
 
Grave: log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
Grave: log4j:WARN Please initialize the log4j system properly.
Avertissement: PWC3991: getOutputStream() has already been called for this response
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
	at org.apache.catalina.connector.Response.getWriter(Response.java:705)
	at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:225)
	at com.sun.faces.context.ExternalContextImpl.getResponseOutputWriter(ExternalContextImpl.java:723)
	at javax.faces.context.ExternalContextWrapper.getResponseOutputWriter(ExternalContextWrapper.java:669)
	at com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter(PartialViewContextImpl.java:431)
	at com.sun.faces.context.PartialViewContextImpl.access$300(PartialViewContextImpl.java:71)
	at com.sun.faces.context.PartialViewContextImpl$DelayedInitPartialResponseWriter.getWrapped(PartialViewContextImpl.java:582)
	at javax.faces.context.PartialResponseWriter.startDocument(PartialResponseWriter.java:115)
	at org.primefaces.context.PrimePartialResponseWriter.startDocument(PrimePartialResponseWriter.java:102)
	at org.richfaces.context.PartialResponseWriterWrapper.startDocument(PartialResponseWriterWrapper.java:32)
	at com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:572)
	at javax.faces.context.ExternalContextWrapper.redirect(ExternalContextWrapper.java:462)
	at com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:182)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:744)
J'aimerai avoir des éclaircissements svp.