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
R
Roberto_Porto
e ai cara blz,
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.
abs
D
drsmachado
Qual a linha?
R
Roberto_Porto
a linha 139 se refere a linha 13 do metodo que gera o pdf.
D
drsmachado
Roberto Porto:
a linha 139 se refere a linha 13 do metodo que gera o pdf.
abs
Uma linha vazia?
//CLASSE GERA PDF publicstaticvoidenviarArquivoPdf(HttpServletResponseresponse,JasperReportjasperReport,Mapparametros,Listlista,StringnomeArquivo)throwsJRException,IOException{JRDataSourcedataSource=newJRBeanCollectionDataSource(lista);System.out.println("jasperReport - "+jasperReport);System.out.println("parametros - "+parametros);System.out.println("dataSource - "+dataSource);byte[]pdfEmFormatoBytes=JasperRunManager.runReportToPdf(jasperReport,parametros,dataSource);//linha 13response.setContentType("application/pdf");response.setHeader("Content-Disposition","attachment; filename="+nomeArquivo);response.setContentLength(pdfEmFormatoBytes.length);ServletOutputStreamouputStream=response.getOutputStream();ouputStream.write(pdfEmFormatoBytes);ouputStream.flush();ouputStream.close();}
R
Roberto_Porto
Me desculpe drsmachado, me refiro a linha 12.
os parâmetros não estão nulos, não consegui entender o que esta ocorrendo =/
R
Roberto_Porto
Roberto Porto:
Me desculpe drsmachado, me refiro a linha 12.
No map eu seto uma variável mas não estou usando ela no iReport.
Os parâmetros não estão nulos, não consegui entender o que esta ocorrendo =/
DESDE JÁ OBRIGADO
D
drsmachado
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…
R
Roberto_Porto
Tens razão drsmachado, vou verificar como essa lista esta vindo para mim e ja te informo!
Obrigado
R
Roberto_Porto
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
Grato
R
Roberto_Porto
fiz o tratamento, entra na condição mas ainda da null pointer
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.
D
drsmachado
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: