Já estou a um tempo pesquisando em diversos lugares porem sem sucesso,
agora peço a ajuda de vocês POR FAVOR.
Na geração do meu pdf via iReport estou tendo nullpointer.
O local do .jasper esta correto na aplicação.
estou usando o iReport-4.7.0
[code]//CLASSE GERA PDF
public static void enviarArquivoPdf(HttpServletResponse response,
JasperReport jasperReport, Map parametros, List lista,String nomeArquivo)
throws JRException, IOException {
ERRO
[14/08/12 10:13:53:643 ACT] 000002d1 SystemErr R java.lang.NullPointerException
[14/08/12 10:13:53:643 ACT] 000002d1 SystemErr R at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
[14/08/12 10:13:53:643 ACT] 000002d1 SystemErr R at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
[14/08/12 10:13:53:643 ACT] 000002d1 SystemErr R at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:419)
[14/08/12 10:13:53:643 ACT] 000002d1 SystemErr R at br.com.intermedica.commonjasper.RelatorioUtil.enviarArquivoPdf(RelatorioUtil.java:139)
br.com.intermedica.commonjasper.RelatorioUtil.enviarArquivoPdf(RelatorioUtil.java:139)
Aliás, chuto que seja um destes que está nulo: jasperReport, parametros, dataSource
então ao meu ver não estão, seguem os prints dos 3 que estou passando, olhe só:
SystemOut O jasperReport - net.sf.jasperreports.engine.JasperReport@f820f82
SystemOut O parametros - {net.sf.jasperreports.text.truncate.at.char=true}
SystemOut O dataSource - net.sf.jasperreports.engine.data.JRBeanCollectionDataSource@6d8a6d8a
a linha 139 se refere a linha 13 do metodo que gera o pdf.
[quote=Roberto Porto] a linha 139 se refere a linha 13 do metodo que gera o pdf.
abs[/quote]
Uma linha vazia?
[code]
//CLASSE GERA PDF
public static void enviarArquivoPdf(HttpServletResponse response,
JasperReport jasperReport, Map parametros, List lista,String nomeArquivo)
throws JRException, IOException {
Eu ainda insisto que algum dos valores está nulos.
Por que não efetua um debug e confere se TODOS os atributos que são recebidos não estão nulos.
Note que você já testa dataSource quando ele está criado e não verifica se a lista foi recebida nula…
drsmachado fiz os testes necessários, não vejo nenhum nada nulo ou vázio, apenas, porem eu não utilizo ele.
teria alguma influencia? seguem como eles estão vindo para mim.
14/08/12 13:49:59:038 ACT] 000002d6 SystemOut O lista.size() - 1
[14/08/12 13:49:59:038 ACT] 000002d6 SystemOut O lista - [br.com.guias.vo.GuiaInternacaoVO@58045804]
[14/08/12 13:49:59:038 ACT] 000002d6 SystemOut O lista.size() - 1
[14/08/12 13:49:59:038 ACT] 000002d6 SystemOut O jasperReport - net.sf.jasperreports.engine.JasperReport@498c498c
[14/08/12 13:49:59:038 ACT] 000002d6 SystemOut O parametros - {}
[14/08/12 13:49:59:038 ACT] 000002d6 SystemOut O parametros.size() - 0
O método runReportToPDF é um método estático, logo, não pode ser o objeto de JasperRunManager que está nulo.
O que resta, então?
Os parâmetros.
Pelo que vi, você não é adepto do uso do debug, certo? Pois usou System.out.println para exibir os dados.
Creio que com um debug bem minucioso, você consiga encontrar onde ocorre o problema.
Então, fiz uns testes aqui, tenho uma servlet que faz quase a mesma coisa (ela cria um gráfico junto).
Passei um objeto null dentro da lista que cria o JRBeanCollectionDataSource, porém, não recebi NPE.
Verificando, estou usando uma versão bem antiga do iReport.
Comparando os jars, tive a surpresa: