我尝试创建一个基于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;
发布于 2014-04-29 18:10:07
使用compiledTemplate作为文件的原因是什么?试着这样做:
File template=new File(JASPER_TEMPLATES_PATH+File.separator+templateName+".jrxml");
JasperReport jasperReport= JasperCompileManager.compileReport(template);
return jasperReport;
发布于 2018-06-07 05:28:25
如果您在Grails环境中,请删除web- .jasper /reports/中的所有报告文件,以便在进行更改后刷新报告。
然后,您可以将.jrxml重新编译为新的.jasper文件。
https://stackoverflow.com/questions/23359761
复制相似问题