我正在用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)时,它显示:
我认为这是一个微不足道的问题,但我可以从哪里开始?
我故意省略了配置,系统细节等等......因为我不知道什么是有用的。
答案 0 :(得分:2)
您需要明确告诉webbrowser它是PDF文件,而不是(X)HTML文件。
ec.setResponseContentType("application/pdf");
注意:在将任何位写入响应主体之前,需要将其设置为。