Pessoal, tá difícil de fazer o fillReport do meu relatório. Tudo por causa de algo que acho que deva ser um pequeno detalhe. Meu código é o seguinte:
String caminhoRelJasper = "c:\\drafts.jasper";
List<DraftSample> listaDraftSample = getDrafts();
InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listaDraftSample);
Map parametros = new HashMap();
JasperPrint impressao = null;
try {
impressao = JasperFillManager.fillReport( relJasper, parametros, ds);
byte[] bytes = JasperExportManager.exportReportToPdf(impressao);
(...)
mas na linha do fillReport dá o seguinte erro:
java.lang.NullPointerException
at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source)
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:191)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:580)
at draftReport.report.PDFReport.doGet(PDFReport.java:80)
Tenho o arquivo drafts.jasper na raiz do “C” e também na pasta “shared/classes” do meu tomcat ( neste caso testei colocando o caminho do jasper apenas “drafts.jasper” )
Não sei mais o que pode ser… preciso de uma força. Qualquer sugestão será bem vinda.
Abraços!
o InputStream foi inicializado corretamente ?
Imagino que sim!
“InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper);”
a variável “caminhoRelJasper” foi setada como “C:\drafts.jasper” e coloquei o arquivo JASPER no raiz do C:
depois tentei colocando o JASPER na pasta “shared/classes” do TomCat e setando “caminhoRelJasper” como “drafts.jasper”
De nenhuma forma funcionou !!!
eu quis dizer “imagino que NÃO”.
Mais dados:
estou usando o JASPER 2.0.1 e o iReport também 2.0.1
Opa, beleza?Tem certeza que seu arquivo jasper está salvo em “c:”?Tente com o arquivo .jrxml!
Já tentei compilar o JRXL e acontece a mesma coisa: não “enxerga”.
E tenho certeza da localização deles, sim…
Olhei também as permissões de acesso do arquivo… tudo como deveria !
COISA DE LÔCO !
Opa, deve ser porque não está compilando checa este código:
JasperReport report = JasperCompileManager.compileReport(relJasper); //relJasper arquivo ".jasper"
Agora deu o erro abaixo. Me ocorreu mais um detalhe… Tô tentando ler a partir de um SERVLET. Será isso ?
java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:142)
at draftReport.report.PDFReport.doGet(PDFReport.java:81)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
Veja se tem esta jar “commons-digester-1.algo” na sua lib?
GRAAAAAAAAAAAAANNDEEEEEE mrSmylle !!!
Estavam faltando 3 bibliotecas… ( resolveram dar uma volta e desapareceram da minha LIB )
MUITO OBRIGADO, cara !
Um abraço !