Alguem me fala da onde tem um objeto null que nao consigui achar, ja debuguei ja vi os valores das variaveis e até agora nao descobri qual é o maldito que ta me lançando esse npe.
Stringpath="C:\CVM\Produtos\TPC_VIEW\WebContent\Relatorios\relatorio_tpc.jasper";System.out.println(path);// ta com o caminho ok, e o arquivo esta la System.out.println(Teste.this.getSource());// imprime o toString() do objetoJasperPrintprint=JasperFillManager.fillReport(path,newHashMap(),NULLAQUI.Teste.this.getSource());
InputStreampath=Teste.this.getClass().getResourceAsStream("\Relatorios\a.jasper");Stringcaminho="C:\CVM\Produtos\TesteSwing\src\Relatorios\a.jasper";System.out.println(caminho);System.out.println(path);// imprime ok o toString System.out.println(Teste.this.getSource());//JasperReport relatorio = JasperCompileManager.compileReport("C:\CVM\Produtos\TesteSwing\src\Relatorios\a.jrxml"); JasperPrintprint=JasperFillManager.fillReport(path,newHashMap(),// aqui me gera null nao sei da ondeTeste.this.getSource());JasperViewer.viewReport(print,true);
evertonsilvagomesjav
aqui ta o método getSource que estou testando, e ele seria usado para preencher o relatorio
Cuidado que o nome do pacote e do arquivo são case sensitive quando estão dentro do .jar
Ah, e tire esse monte de Teste.this.algumMétodo.
Se você está na classe chame o método diretamente, ou então this.algumMétodo se vc acha que fica mais claro.
[]´s
juliocesarss
Olha eu uso esse código pra gerar o relário. Não sei onde esta o seu erro mas talvez isso ajude :
try{Connectioncon=bd.getConnection();// sua ConexãoHashMapparametros=newHashMap();//parametrosparametros.put("USER","teste");//parametrosJasperPrintjp=JasperFillManager.fillReport("./jasper/relatorio_final.jasper",parametros,con);//JasperPrint com 3 parametros, caminho do relatorio, parametros, e a conexãoJasperViewerjrv=newJasperViewer(jp,false);// O JasperViewer com o JasperPrint como Parametrojrv.setVisible(true);// E a visualização}catch(Exceptione){e.printStackTrace();}
Cuidado que o nome do pacote e do arquivo é case sensitive quando estão dentro do .jar
Ah, e tire esse monte de Teste.this.algumMétodo.
Se você está na classe chame o método diretamente, ou então this.algumMétodo se vc acha que fica mais claro.
[]´s
rsrs esses Teste.this é pq estou na classe local de método, no evento de um botao.
J
joyle
evertonsilvagomesjava:
Alguem sabe pq o null?
Fazendo os teste nada acusa o nullPointer:
InputStreampath=Teste.this.getClass().getResourceAsStream("\Relatorios\a.jasper");Stringcaminho="C:\CVM\Produtos\TesteSwing\src\Relatorios\a.jasper";System.out.println(caminho);System.out.println(path);// imprime ok o toString System.out.println(Teste.this.getSource());//JasperReport relatorio = JasperCompileManager.compileReport("C:\CVM\Produtos\TesteSwing\src\Relatorios\a.jrxml"); JasperPrintprint=JasperFillManager.fillReport(path,newHashMap(),// aqui me gera null nao sei da ondeTeste.this.getSource());JasperViewer.viewReport(print,true);
Você não precisa colocar '\\' na InputStream. Creio que seja isso que esteja dando null.
Tente fazer assim
No seu caso vc irá apontar pra onde está seu relatório. Coloque o seu relatório dentro de um pacote no seu projeto e faça como mostrado acima.
evertonsilvagomesjav
nussa consegui resolver, era problema de versão do ireport + jasper. Vlw a todos
Priuli
Tá ai uma coisa que eu NÃO gosto do jasper, a compatibilidade de versões, é como se fosse cada versão um novo sistema. compatibilidade com versão anterior praticamente não existe!!!
Hadamanthys
Estou com o mesmo problema, estou usando o iReport 4.5 e criei o arquivo jasper também com a mesma versão.
Toda hora acontece NullPointException.
Segue meu código.
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("WebContent/Relatorios/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();}}}