Pessoal estou tentando utilizar o jasper para gerar relatórios em pdf porém o mesmo não consegue encontrar o .jasper
abaixo segue o código:
( com o arquivo dentro de mesma pasta )
ResultSet rs = stm.executeQuery( query );
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
JasperPrint print = JasperFillManager.fillReport("load.jasper", parameters, jrRS);
JasperExportManager.exportReportToPdfFile(print, "load.pdf");
ja tentei: ( com o arquivo dentro de outra pasta )
ResultSet rs = stm.executeQuery( query );
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
JasperPrint print = JasperFillManager.fillReport("c:/relatorio/load.jasper", parameters, jrRS);
JasperExportManager.exportReportToPdfFile(print, "load.pdf");
e ja tentei também: ( com o arquivo dentro de outra pasta )
ResultSet rs = stm.executeQuery( query );
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
JasperPrint print = JasperFillManager.fillReport("c:\\relatorio\\load.jasper", parameters, jrRS);
JasperExportManager.exportReportToPdfFile(print, "load.pdf");
agradeço se puderem me ajudar
abs !
se puder enviar o stack trace do erro no console, fica mais fácil para ajudar.
segue ele:
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
o erro não é de relatorio nao encontrado.
existe algum erro de compilação da sua aplicação
ou do proprio relatorio
confira se o jar do jasper que está no classpath do projeto é da mesma versão que o aplicativo que está utilizando para gerar o arquivo .jasper
cara provavelmente esse problema e por causa do nome do relatorio o nome do arquivo não quer dizer que o nome dele
seja o mesmo do arquivo.
no ireport se me lembro bem voce acessa as propriedades do relatorio e la tera um campo name ai nele voce colaca o nome
load do relatorio ai quando for gerado o relatorio serar salvo um arquivo load.pdf.
para verificar se o erro é isso mesmo apos executar o aplicativo no diretorio terar um arquivo um nome padrão do ireport para o relatorio.
verifica ai e se for isso mesmo muda o nome para load que dar certo.
eita esse printStrackTrace() e parecido com erro de compilação não acham turma.
Samuel, sim o classpath esta apontando para a versao 3.7.2 e o .jasper foi gerado na mesma versão
ajinfotec vou chegar isto que disse
vlw
opa o meu post anterior undercia ainda não tinha postado o erro ai disse o que provavelmente achava
por que ja tive esse problema e era exatamente isso.
mais uma coisa se eu atualizo a pagina umas 4 5 vezes ele muda o erro, caso contrário continua o mesmo
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:623)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.ClassNotFoundException: org.apache.jsp.dialogx_jsp
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:621)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
esse erro ai e que ta faltando essa classe aqui org.apache.jsp.dialogx_jsp no classpath
adiciona os .jar da pasta lib do jasper.
mesma coisa…
engraçadp que eu compilei um .java com o conTEXT e funciona ! ou seja ele diz que o arquivo não foi encontrado mas la ele esta e por java eu consigo gerar o pdf o problema é com o jsp mesmo…
public JasperPrint fill() throws JRException
{
long start = System.currentTimeMillis();
JasperPrint print = JasperFillManager.fillReport("C:\\relatorio\\load.jasper", null, new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(print, "load.pdf");
System.err.println("Filling time : " + (System.currentTimeMillis() - start));
return print;
}
}
Galera Resolvido
foi adicionado: this.getServletContext().getRealPath("/load.jasper")
JasperPrint print = JasperFillManager.fillReport(this.getServletContext().getRealPath("/load.jasper"), null, jrRS);
JasperExportManager.exportReportToPdfFile(print, this.getServletContext().getRealPath("/load.pdf"));
valeu !