boa noite galera
Estou com problemas para utilizar relatorios feitos no Ireport em minha aplicação WEB,
jah importei as lib para o classpath do projeto e ao chamar o relatorio.jasper em um servlet da um erro.
Gostaria de saber o local correto de colocar o arquivo.jasper no projeto.
Codigo do servlet:
// Na variavel pathJasper ficara o caminho do diretório para
// os relatórios compilados (.jasper)
String pathJasper = getServletContext().getRealPath("/WEB-INF/classes/delave/javaBeans/");
System.out.println(pathJasper);
// A variavel path armazena o caminho real para o contexto
// isso é util pois o seu web container pode estar instalado em lugares diferentes
String path = getServletContext().getRealPath("Relatorios");
// Parametros do relatorio
Map parametros = new HashMap();
// O único parametro que devemos passar é o PathRelAutores
// é o caminho pro RelAutores.jasper (que foi subtituido pelo
// valor fixo ?D:/iReport-0.4.0/RelAutores.jasper?)
//parametros.put("PathRelAutores", pathJasper + "PrimeiroRelatorio.jasper");
try {
Connection con = ConnectionFactory.getConnection();
// Aqui ele cria o relatório
JasperPrint impressao = JasperFillManager.fillReport(pathJasper
+ "relatorio.jasper", parametros, con);
// Grava o relatório em disco em pdf
JasperManager.printReportToPdfFile(impressao, path
+ "/RelatorioLivros.pdf");
// Redireciona para o pdf gerado
res.sendRedirect("RelatorioLivros.pdf");
} catch (Exception e) {
res.getWriter().println("Erro ao gerar o relatório: " + e);
}
o erro que traz eh esse:
SEVERE: Servlet.service() for servlet Relatorios threw exception
java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JasperFillManager
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at delave.controle.Relatorios.doPost(Relatorios.java:53)
at delave.controle.Relatorios.doGet(Relatorios.java:23)