Hallo ich habe da ein kleines Problem und brauche mal eure Hilfe. Und zwar habe ich folgenden Code
Und zwar gibt es da folgendes Problem: Das erste mal drucken klappt ohne Probleme, sobald ich aber ein zweites mal drucken will, bekomme ich folgende Fehlermeldung:
java.lang.IllegalStateException: FacesContext already released.
Der Debugger meldet mir das er in der oben rotmarkierten Zeile rausspringt. Muss ich noch was zusätzlich angeben oder kann mir einfach einer erklären woran das liegt ?
Code:
ServletContext servCont = ((ServletContext)FacesContext.getCurrentInstance().
getExternalContext().getContext());
HttpServletResponse response = (HttpServletResponse)(FacesContext.getCurrentInstance().
getExternalContext().getResponse());
JasperReport jasperReport;
JasperPrint jasperPrint;
FacesContext fc = FacesContext.getCurrentInstance();
HashMap<String, String> parameter = new HashMap<String, String>();
publicvoid drucken_neu(ActionEvent ev) {
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "Attachment; filename = .pdf");
try {
jasperReport = JasperCompileManager.compileReport(servCont.getRealPath("/reports/neu.jrxml"));
jasperPrint = JasperFillManager.fillReport(jasperReport, parameter, DB2Connect.getConnection());
byte[] pdfFile= JasperExportManager.exportReportToPdf(jasperPrint);
response.setContentLength(pdfFile.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(pdfFile, 0, pdfFile.length);
ouputStream.flush();
ouputStream.close();
fc.responseComplete();
}
catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
Und zwar gibt es da folgendes Problem: Das erste mal drucken klappt ohne Probleme, sobald ich aber ein zweites mal drucken will, bekomme ich folgende Fehlermeldung:
java.lang.IllegalStateException: FacesContext already released.
Der Debugger meldet mir das er in der oben rotmarkierten Zeile rausspringt. Muss ich noch was zusätzlich angeben oder kann mir einfach einer erklären woran das liegt ?