我刚刚实现了一个Jasper报告来从运行在tomcat 7上的java web应用程序生成一个pdf文档,但是当我的电脑上生成报告时出现一个java图标(img1。 PNG),如果我关闭“Java应用程序”停止我的Tomcat服务器和我的web应用程序的执行,这是我的PDF生成方法的代码:创建一个PDF Jasper Report,终止服务器执行
.xhtml按钮:
<h:form>
<h:commandButton actionListener="#{menuController.jasperTestOne}" value="Jasper PDF" />
</h:form>
后端java代码:
public void jasperTestOne() {
try {
Map<String,Object> parametros= new HashMap<String,Object>();
parametros.put("PRINT_BY", "SomeUser");
String jPath = "/Users/Documents/pdf/jasper/test.jasper";
File jasper = new File(jPath);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasper.getPath(),parametros, new JRBeanCollectionDataSource(this.getItems()));
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.addHeader("Content-disposition","attachment; filename=jsfReporte.pdf");
ServletOutputStream stream = response.getOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, stream);
stream.flush();
stream.close();
FacesContext.getCurrentInstance().responseComplete();
} catch(Exception ex) {
System.out.println("JASPER ERROR: " + ex.getMessage());
}
}
你检查日志文件吗?什么是堆栈跟踪? –