【问题标题】:Jasper Reports caching JasperReport fileJasper Reports 缓存 JasperReport 文件
【发布时间】:2021-03-04 17:42:38
【问题描述】:

我尝试创建一个基于 servlet 的报告服务。

当应用程序正在运行并且我更改 .jrxml 文件时,我的应用程序仍然 给我的报告没有改变设计,所以我认为 jasper 将它缓存在某个地方。

如何关闭或强制清除此缓存?

 File compiledTemplate=new File(JASPER_COMPILED_TEMPLATES_PATH+  File.separator+templateName+".jasper");
        
 File template=new File(JASPER_TEMPLATES_PATH+File.separator+templateName+".jrxml");
        JasperReport jasperReport=null;
        

        if(compiledTemplate.exists()){
            compiledTemplate.delete();
        }
        
        JasperCompileManager.compileReportToFile(template.getAbsolutePath(),compiledTemplate.getAbsolutePath());
        jasperReport=(JasperReport) JRLoader.loadObjectFromFile(compiledTemplate.getAbsolutePath());
        
        return jasperReport;

【问题讨论】:

  • 报告更新后必须重新编译

标签: java jasper-reports


【解决方案1】:

使用compiledTemplate作为文件的原因是什么?试试这样:

File template=new File(JASPER_TEMPLATES_PATH+File.separator+templateName+".jrxml");
JasperReport jasperReport= JasperCompileManager.compileReport(template);
return jasperReport;

【讨论】:

  • 我不能这样做。这是我老板的决定。
【解决方案2】:

如果您在 Grails 环境中,请删除 web-app/reports/ 中的所有 .jasper 文件以在进行更改后刷新您的报告。

然后您可以将 .jrxml 重新编译为新的 .jasper 文件。

【讨论】:

    猜你喜欢
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多