我在 Jboss 7 中有一个 Java Web 项目,我在其中使用 Jasper 报告。 我修改了在本地主机上测试的 jasper 文件的布局,这没问题。 我部署了服务器,但它仍然将 jasper 文件携带到以前的布局。 Jasper 根本没有更新。 已经清理了 tmp 文件夹中的文件夹,我停止并启动了服务器,更改了保存 jasper 的方式,但没有任何效果。
public class UtilRelatorios {
public static void imprimeRelatorio(String relatorioNome,
HashMap parametros) throws IOException, JRException {
FacesContext fc = FacesContext.getCurrentInstance();
ServletContext context = (ServletContext) fc.getExternalContext().getContext();
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
JasperPrint jasperPrint =
JasperFillManager.fillReport(
context.getRealPath("/relatorios/jasper")+ File.separator+relatorioNome+".jasper",
parametros);
byte[] b = null;
try {
b = JasperExportManager.exportReportToPdf(jasperPrint);
} catch (Exception e) {
e.printStackTrace();
} finally {
}
if (b != null && b.length > 0) {
// Envia o relatório em formato PDF para o browser
response.setContentType("application/pdf");
int codigo = (int) (Math.random()*1000);
response.setHeader("Content-disposition","inline);filename=relatorio_"+codigo+".pdf");
response.setContentLength(b.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(b, 0, b.length);
ouputStream.flush();
ouputStream.close();
}
}
}
最佳答案
.jrxml 和 .jasper
您确实已经编辑了 .jrxml
,但是您是否已成功将其编译为新的 .jasper
(编译后的版本)
您更新的是 .jasper
文件吗?
注意:在您的代码中,您没有编译 .jrxml
,而是直接使用编译后的版本 .jasper
,因此您需要覆盖它。
how-do-i-compile-jrxml-to-get-jasper
what-is-the-difference-between-jasperreport-formats
如果这不起作用,请输出 context.getRealPath("/relatorios/jasper")+ File.separator+relatorioNome+".jasper"
以了解您需要替换哪个文件。
关于java - Jasper 尚未更新 jboss 服务器中的文件 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33997668/