[IReport] Impression avec ireport
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:
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:
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.