Java 转发到文件报告时出错
我正在尝试使用SpringBoot、Hibernate和Jasper报告从数据库打印数据。以下是我生成报告的代码:Java 转发到文件报告时出错,java,spring-boot,jasper-reports,filenotfoundexception,Java,Spring Boot,Jasper Reports,Filenotfoundexception,我正在尝试使用SpringBoot、Hibernate和Jasper报告从数据库打印数据。以下是我生成报告的代码: @RequestMapping(value = "report/manpowerMainReport2", method = RequestMethod.GET) @ResponseBody public String generateReport( @RequestParam("formId") Long formId,
@RequestMapping(value = "report/manpowerMainReport2", method = RequestMethod.GET)
@ResponseBody
public String generateReport(
@RequestParam("formId") Long formId,
Model model, HttpServletRequest request,
HttpServletResponse response) throws JRException,
IOException,
NamingException {
/*String rptFmt="pdf";
Log.info("Report Format =" +rptFmt);*/
String reportFileName = "/src/main/resources/static/jasper/Blank_A4_Landscape.jasper";
JasperReportDao jrdao = new JasperReportDao();
Connection conn = null;
try {
conn = jrdao.getConnection();
JasperFillManager.fillReportToFile(reportFileName, null, new JREmptyDataSource());
HashMap<String, Object> hmParams = new HashMap<String, Object>();
hmParams.put("formId", formId);
JasperReport jasperReport = jrdao.getCompiledFile(reportFileName,request);
jrdao.generateReportPDF(response, hmParams, jasperReport, conn);
}
catch (SQLException sqlExp) {
System.out.println("Exception::" + sqlExp.toString());
}
finally {
if (conn != null) {
try {
conn.close();
conn = null;
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
return null;
}
@RequestMapping(value=“report/manpowerMainReport2”,method=RequestMethod.GET)
@应答器
公共字符串生成器报告(
@RequestParam(“formId”)长formId,
模型,HttpServletRequest,
HttpServletResponse响应)引发异常,
IOException,
NamingException{
/*字符串rptFmt=“pdf”;
Log.info(“报告格式=”+rptFmt);*/
String reportFileName=“/src/main/resources/static/jasper/Blank_A4_scape.jasper”;
JasperReportDao jrdao=新的JasperReportDao();
连接conn=null;
试一试{
conn=jrdao.getConnection();
JasperFillManager.fillReportToFile(reportFileName,null,新的JREptyDataSource());
HashMap hmParams=新的HashMap();
hmParams.put(“formId”,formId);
JasperReport JasperReport=jrdao.getCompiledFile(报告文件名,请求);
generateReportPDF(响应,hmParams,康涅狄格州jasperReport);
}
捕获(SQLException sqlExp){
System.out.println(“异常::”+sqlExp.toString());
}
最后{
如果(conn!=null){
试一试{
康涅狄格州关闭();
conn=null;
}
捕获(SQLE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
System.out.println(e.getMessage());
}
}
}
返回null;
}
但是,在localhost上运行代码时,会出现以下错误:
数据库连接2017-04-27 09:47:55.366错误2624---
[io-8080-exec-27]o.s.boot.web.support.ErrorPageFilter:
从请求转发到错误页[/report/manpowerMainReport2]
由于异常[java.io.FileNotFoundException:
\src\main\resources\static\jasper\Blank\u A4\u scape.jasper]
net.sf.jasperreports.engine.jr异常:
java.io.FileNotFoundException:
\src\main\resources\static\jasper\Blank\u A4\u scape.jasper位于
net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:127)
~[jasperreports-6.2.2.jar:6.2.2]at
net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:116)
~[jasperreports-6.2.2.jar:6.2.2]at
net.sf.jasperreports.engine.JasperFillManager.fillToFile(JasperFillManager.java:497)
~[jasperreports-6.2.2.jar:6.2.2]at
net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:888)
~[jasperreports-6.2.2.jar:6.2.2]at
com.mida.controller.LoadJasperReport.generateReport(LoadJasperReport.java:82)
~[LoadJasperReport.class:na]
有人能解决这个错误吗?如果你们有任何使用与spring boot和hibernate集成的Jasper创建报告的工作示例,请在此处共享链接供我参考。错误告诉您:java.io.FileNotFoundException:\src\main\resources\static\Jasper\Blank\u A4\u scanner.Jasper文件不在您的类路径上,可能未包含在您的构建中?可能与