Jasper报告未在PDF中正确流式传输

时间:2013-01-08 17:26:01

标签: jsf java-ee pdf jasper-reports

我正在用JR生成PDF发票。在我的本地机器(linux ubuntu)上完美运行:

FacesContext fc = FacesContext.getCurrentInstance();
        ExternalContext ec = fc.getExternalContext();
        String templateAbsolutePath = ec.getRealPath(templateRelativePath);

        JasperReport jasperReport;
        try {
            jasperReport = JasperCompileManager.compileReport(templateAbsolutePath);        
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, getParametriFattura(fattura), datasource );

            JasperExportManager.exportReportToPdfStream(jasperPrint, ec.getResponseOutputStream());

        } catch (JRException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        fc.responseComplete();  

然而,当我将战争部署到登台服务器(linux ubuntu)时,它显示:

enter image description here

我认为这是一个微不足道的问题,但我可以从哪里开始?

我故意省略了配置,系统细节等等......因为我不知道什么是有用的。

1 个答案:

答案 0 :(得分:2)

您需要明确告诉webbrowser它是PDF文件,而不是(X)HTML文件。

ec.setResponseContentType("application/pdf");

注意:在将任何位写入响应主体之前,需要将其设置为