Estou tentando gerar um relatorio pdf, mas fico recebendo o mesmo erro. Já tentei tudo que eu sabia.
O meu código do relatorio:
public class RelatorioAluno {
private Integer matricula;
private String nome;
private String curso;
private Double nota1;
private Double nota2;
private static List <Aluno> listAluno;
@SuppressWarnings("unchecked")
public void execute(ServletContext sc, HttpServletRequest request, HttpServletResponse response) {
try {
List <RelatorioAluno> listRelAluno = new ArrayList<RelatorioAluno>();
AlunoDao dao = new AlunoDao();
listAluno = dao.getAllAlunos();
for(int i=0; i < listAluno.size(); i++){
RelatorioAluno relAluno = new RelatorioAluno();
relAluno.setMatricula((listAluno.get(i).getMatricula()));
relAluno.setNome((listAluno.get(i).getNome()));
relAluno.setCurso((listAluno.get(i).getCurso()));
relAluno.setNota1((listAluno.get(i).getNota1()));
relAluno.setNota2((listAluno.get(i).getNota2()));
listRelAluno.add(relAluno);
}
JRDataSource jrds = new JRBeanCollectionDataSource(listRelAluno);
// parametros do relatorio
HashMap parameters = new HashMap();
// lendo arquivo jasper
File reportFile = new File(sc.getRealPath("/rel"));
byte[] bytes = null;
try {
bytes = JasperRunManager.runReportToPdf(reportFile+"/aluno.jasper", parameters, jrds);
//JasperPrint print = JasperFillManager.fillReport(reportFile.getPath(), parameters, jrds);
//bytes = JasperExportManager.exportReportToPdf(print);
//JasperViewer.viewReport( reportFile.getName() + ".pdf", false ); ]
JasperViewer.viewReport(reportFile + "/aluno.jrprint", false);
} catch (Exception e) {
e.printStackTrace();
return;
}
//
if (bytes != null && bytes.length > 0) {
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
e a exception que lança:
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: D:\raphael.campos\desenvolvimento\workspace\Relatorio\rel\aluno.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:84)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:536)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:387)
at com.ireport.relatorio.RelatorioAluno.execute(RelatorioAluno.java:58)
at com.ireport.controllers.ServRelatorio.service(ServRelatorio.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: D:\raphael.campos\desenvolvimento\workspace\Relatorio\rel\aluno.jasper
... 18 more
Valeu!