Galera sei que já postei vários tópicos, mais agora consegui evolui e parei com um problema que estou tendo na hora de pegar o caminho onde está localizado o arquivo .jasper no meu projeto, já debuguei e ele da NullPointException, alguém poderia me ajuda?
Só para informação, eu tenho uma pagina JSP com uma combobox com valores do banco, ele pega o id e joga para o requeste.getParameter(“id”) até tudo bem, mais quando vai JasperReport relatorioCompilado = (JasperReport)JRLoader.loadObject(jasper); ocorre um exceção, segue a classe:
packagebr.com.sein.relatorio;importjava.io.File;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importnet.sf.jasperreports.engine.JRException;importnet.sf.jasperreports.engine.JasperExportManager;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.engine.JasperReport;importnet.sf.jasperreports.engine.util.JRLoader;publicclassGerarRelatorioextendsHttpServlet{privatefinalstaticlongserialVersionUID=1L;protectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringcod=request.getParameter("imprimir_analise");// //ServletContext contex = this.getServletContext();// // String nomeDoArquivoCopilado = contex.getRealPath(nomeDoRelatorio);ServletContextcontext=this.getServletConfig().getServletContext();Filejasper=newFile(context.getRealPath("Sca-version7.jasper"));try{JasperReportrelatorioCompilado=(JasperReport)JRLoader.loadObject(jasper);//JRLoader.loadObject(arquivo);Map<String,String>parametros=newHashMap<String,String>();parametros.put("parametro",cod);JasperPrintrelatorioFinal=JasperFillManager.fillReport(relatorioCompilado,parametros);response.setContentType("application/pdf;charset=UTF-8");//Adequado para se enviar dados binários para o browser.ServletOutputStreamout=response.getOutputStream();JasperExportManager.exportReportToPdfStream(relatorioFinal,out);out.flush();}catch(IOExceptione){response.setContentType("text/plain");PrintWriterprintWriter=response.getWriter();e.printStackTrace(printWriter);thrownewServletException(e);}catch(JRExceptione){// TODO Auto-generated catch blocke.printStackTrace();}}}
Cara na verdade eu já tentei dessa forma também, mais fiz assim e não funfou, não consegui entender de onde vem esse this,getServlet, seria a mesma coisa que eu fiz ?
está faltando o arquivo commons-logging.jar no classpath da sua aplicação
H
Hadamanthys
Já está, sendo que o arquivo é commons-logging-1.0.4.jar, seria esse ?
O erro acontece quando eu carrego a página, sem mesmo clicar em gerar relatório, assim que carrego gerar o erro, sendo que não tem linha 165, mais funciona direitinho, sem dar erro na pagina, e sim apenas no console>