Olá pessoal,
eu estou fazendo um exemplo
para gerar um relatório com ireport 3.7
mas aparece a seguinte mensagem
no browser:
Erro ao gerar o relatório: net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: C:\Documents and Settings\Ricardo\Meus documentos\NetBeansProjects\Relatorio\build\web\WEB-INF\classes\br\eti\furutani\RelLivros.jasper
Será que alguém poderia me dar uma ajuda?
Eu não estou conseguindo visualizar o relatório.
C:\Documents and Settings\Ricardo\Meus documentos\NetBeansProjects\Relatorio\build\web\WEB-INF\classes\br\eti\furutani
mas mesmo assim continua aparecendo a mensagem qdo eu executo o servlet os arquivos: RelLivros.jasper e RelAutores.jasper,
disaparecem da pasta será que vc g4j ou alguém sabe o que pode estar acontecendo?
Jóia g4j com printStackTracer
está aparecendo a seguinte mensagem:
java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:232)
at br.eti.furutani.Relatorio.doPost(Relatorio.java:57)
at br.eti.furutani.Relatorio.doGet(Relatorio.java:88)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
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:128)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
Será que tem como vc g4j ou alguém me dar uma ajuda?
public class Relatorio extends HttpServlet {
public static Connection con;
public static String banco = "relatorio"; // Nome do banco de dados
public static String usuario = "root"; // Usuario do banco
public static String senha = "85246710"; // Senha
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
conexao(); // Faz a conexão
// Na variavel pathJasper ficara o caminho do diretório para os relatórios compilados (.jasper)
String pathJasper = getServletContext().getRealPath(
"/WEB-INF/classes/br/eti/furutani/")
+ "/";
// 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("/");
// 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 + "RelAutores.jasper");
try {
// Aqui ele cria o relatório
JasperPrint impressao = JasperFillManager.fillReport(pathJasper
+ "RelLivros.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) {
e.printStackTrace();
res.getWriter().println("Erro ao gerar o relatório: " + e);
}
}
// Cria a conexão
public void conexao() {
try {
if (con == null || con.isClosed()) {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/" + banco, usuario, senha);
}
} catch (Exception e) {
System.out.println("não foi possível conectar ao banco ->");
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
doPost(arg0, arg1);
}
}
Não sei se isso vai ajudar, eu postar o código
aqui, mas estou precisando da sua ajuda g4j,
ou de alguém.