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.
[code]String path = “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 objeto
JasperPrint print = JasperFillManager.fillReport(path, new HashMap(), NULL AQUI.
Teste.this.getSource());[/code]
[code]InputStream path = Teste.this.getClass().getResourceAsStream("\Relatorios\a.jasper");
String caminho = “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");
JasperPrint print = JasperFillManager.fillReport(path, new HashMap(), // aqui me gera null nao sei da onde
Teste.this.getSource());
JasperViewer.viewReport(print,true);[/code]
aqui ta o método getSource que estou testando, e ele seria usado para preencher o relatorio
[code]public JRDataSource getSource(){
List<Cliente> cliente = new ArrayList<Cliente>();
Cliente c = new Cliente(1,"everton");
cliente.add(c);
c = new Cliente(2,"pedro");
cliente.add(c);
JRDataSource source = new JRBeanCollectionDataSource(cliente);
return source;
}[/code]
InputStream is = getClass().getResourceAsStream( "/Relatorios/a.jasper" );
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.
Olha eu uso esse código pra gerar o relário. Não sei onde esta o seu erro mas talvez isso ajude :
try{
Connection con = bd.getConnection();// sua Conexão
HashMap parametros = new HashMap();//parametros
parametros.put("USER", "teste");//parametros
JasperPrint jp = JasperFillManager.fillReport("./jasper/relatorio_final.jasper", parametros, con);//JasperPrint com 3 parametros, caminho do relatorio, parametros, e a conexão
JasperViewer jrv = new JasperViewer(jp,false); // O JasperViewer com o JasperPrint como Parametro
jrv.setVisible(true);// E a visualização
}catch(Exception e){
e.printStackTrace();
}
InputStream is = getClass().getResourceAsStream( "/Relatorios/a.jasper" );
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[/quote]
rsrs esses Teste.this é pq estou na classe local de método, no evento de um botao.
[quote=evertonsilvagomesjava]Alguem sabe pq o null?
Fazendo os teste nada acusa o nullPointer:
[code]InputStream path = Teste.this.getClass().getResourceAsStream("\Relatorios\a.jasper");
String caminho = “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");
JasperPrint print = JasperFillManager.fillReport(path, new HashMap(), // aqui me gera null nao sei da onde
Teste.this.getSource());
JasperViewer.viewReport(print,true);[/code][/quote]
Você não precisa colocar ‘\’ na InputStream. Creio que seja isso que esteja dando null.
Tente fazer assim
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!!!