0

我正在编写一个弹簧应用程序。我有这样的预定工作。

@Async
@Scheduled(cron = "0 0 16 * * ?")
public void createReport()
{
    // argJasperPath = /WEB-INF/jasperFiles/myreport.jasper
    JasperPrint jasperPrint = JasperFillManager.fillReport(argJasperPath, argReportParams, argDataSource);
    JasperExportManager.exportReportToPdfFile(jasperPrint, argOutputPath);
}

这在每天 16:00 运行并创建报告。我正在使用JasperReports生成报告。我在/WEB-INF/jasperFiles/myreport.jasper下有myreport.jasper文件,当我在生成报告时运行我的工作时,我得到了。FileNotFound exception

如何以预定的方法访问我的jasper文件?

4

1 回答 1

0
@Autowired
ServletContext context;

@Async
@Scheduled(cron = "0 0 16 * * ?")
public void createReport()
{
    // argJasperPath = /WEB-INF/jasperFiles/myreport.jasper
    JasperPrint jasperPrint = JasperFillManager.fillReport(context.getRealPath(argJasperPath), argReportParams, argDataSource);
    JasperExportManager.exportReportToPdfFile(jasperPrint, argOutputPath);
}

如果我们自动装配ServletContext,我们可以到达这样的目录:(context.getRealPath(argJasperPath)

于 2012-08-16T12:55:51.703 回答