Pessoal, boa noite.
Estou começando a utilizar o iReport com o NetBeans e estou com um problema. Estou tetando gerar um relatório sem filtro. Apenas chamando para verificar se aparece o relatório normalmente.
Até ai tudo bem. Ele chega a abrir o JasperViewer, mas não aparece o meu relatório. Fica em branco.
Estou usando Java Web. Segue abaixo o meu Servlet para que possam me ajudar:
request.setCharacterEncoding("UTF-8");
HttpSession sessao = request.getSession();
String modeloRelatorio = request.getParameter("modeloRelatorio");
if (modeloRelatorio.equals("modelo1")) {
Connection con = ConnectionFactory.getConnection();
String src = "modelosDeRelatorio\\RelatorioTeste.jasper";
JasperPrint jasperPrint = null;
try {
jasperPrint = JasperFillManager.fillReport(src, null, con);
} catch (JRException ex) {
Logger.getLogger(RelatorioRiscoController.class.getName()).log(Level.SEVERE, null, ex);
}
JasperViewer view = new JasperViewer(jasperPrint, false);
view.setVisible(true);
request.getRequestDispatcher("JnlModeloRelatoriosRisco.jsp").forward(request, response);
Tela do JasperViewer:
Caminho do meu arquivo .jasper: C:\Users\georg\Documents\NetBeansProjects\HistoryRisk\web\modelosDeRelatorio
Desde já agradeço.
Abraços!
Bom dia,
JasperViewer, para web?
Debuga para ver se realmente vem dados, parece que apenas não trouxe dados. Tem uma opção que vc pode marcar pra ele exibir em branco se não trouxe dados: When No Data Type = All Sections No Detail
E não deu nenhum erro no console?
Dica: não use sql ou qualquer acesso a banco direto do relatório, faça isso pela aplicação e mande apenas os dados para ele.
Rodrigo, boa noite.
Desculpe pela demora, mas alterei algumas questões e agora está dando erro. Segue abaixo o código:
request.setCharacterEncoding(“UTF-8”);
HttpSession sessao = request.getSession();
response.setHeader("Cache-control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("Application/pdf");
String modeloRelatorio = request.getParameter("modeloRelatorio");
if (modeloRelatorio.equals("modelo1")) {
try {
ServletOutputStream saida = response.getOutputStream();
Connection con = ConnectionFactory.getConnection();
//String src = "modelosDeRelatorio/RelatorioTeste.jasper";
JasperReport reporte = (JasperReport) JRLoader.loadObjectFromFile("./modelosDeRelatorio/RelatorioTeste.jasper");
JasperPrint jPrint = JasperFillManager.fillReport(reporte, null, con);
JRExporter exportar = new JRPdfExporter();
exportar.setParameter(JRExporterParameter.JASPER_PRINT, jPrint);
exportar.setParameter(JRExporterParameter.OUTPUT_STREAM, saida);
exportar.exportReport();
}catch (JRException ex) {
Logger.getLogger(RelatorioRiscoController.class.getName()).log(Level.SEVERE, null, ex);
}
//request.getRequestDispatcher("JnlModeloRelatoriosRisco.jsp").forward(request, response);
//request.getRequestDispatcher("JnlModeloRelatoriosRisco.jsp").forward(request, response);
}

Ok, mas este erro no navegador diz tanto quanto está ai: “Deu erro!”. Vc precisa olhar o stacktrace no log se quiser ver a causa.
Rodrigo,
Olhei no log e deu o seguinte erro:
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: \modelosDeRelatorio\RelatorioTeste.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:114)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:103)
at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromFile(JRLoader.java:94)
at br.cesjf.RelatorioController.RelatorioRiscoController.doPost(RelatorioRiscoController.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at br.cesjf.util.FilterSession.doFilter(FilterSession.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.FileNotFoundException: \modelosDeRelatorio\RelatorioTeste.jasper
… 33 more
Já tentei alterar o caminho do arquivo e ainda continua 
O fato é que o problema é o caminho do arquivo. Não tenho muito oq dizer pq não conheço sua estrutura. Se não consegue acertar com caminho relativo como estas fazendo usa absoluto C:\adada\sdfsf
Rodrigo,
Consegui resolvendo utilizando o caminho completo.
JasperReport reporte = (JasperReport) JRLoader.loadObjectFromFile(“C:\Users\georg\Documents\Modelos de relatório do iReport\RelatorioPlanejamentoGerenciamentoRisco2.jasper”);
A questão é o seguinte. Quando subo o meu arquivo para o meu servidor ele não encontra o arquivo. Segue abaixo minha estrutura:


Consegui resolver. Alterei a forma de chamar o meu arquivo e alterei o diretório inserindo ele na mesma pasta que o meu Servlet. Segue abaixo a forma que inseri:
JasperReport reporte = (JasperReport) JRLoader.loadObject(getClass().getResource("/br/cesjf/RelatorioController/RelatorioPlanejamentoGerenciamentoRisco.jasper"));
Muito Obrigado pelas dicas @Rodrigo_Void.
Abs,
1 curtida