Jasper报告缓存Jasper Report文件

时间:2014-04-29 08:44:58

标签: java jasper-reports

我尝试创建一个基于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;

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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