Oi galera, td bem. Eu sou novo tanto no forum quanto na linguagem JAVA e tudo que ela pode oferecer. Eu estou tendo que criar uma mini aplicação web que gera uns relatorios. Eu estou usando servlet e iReports (JASPER) e o TOMCAT.
quando eu clico no botao de gerar o relatorio, o servlet pega um Hash Table da sessao do usuario e manipula esta tabela para gerar o relatorio que eu quero. O codigo que eu uso no servlet eh o seguinte:
import java.sql.;
import java.io.;
import java.util.;
import javax.servlet.;
import javax.servlet.http.;
import net.sf.jasperreports.engine.;
import net.sf.jasperreports.engine.util.*;
…
try
{ //pega a HashTable da sessao
ht = (Hashtable) sessao.getAttribute(“ht”);
JREmptyDataSource jrRS = new JREmptyDataSource();
//relatorio compilado
InputStream jp = getServletContext().getResourceAsStream("/Declaracao.jasper");
JasperReport relatorio = (JasperReport) JRLoader.loadObject(jp);
//aqui que dá a exception
JasperPrint impressao = JasperFillManager.fillReport(relatorio,ht,jrRS);
JasperExportManager.exportReportToPdfFile(impressao,“Caminho a ser gerado”);
RequestDispatcher rd;
rd = getServletContext().getRequestDispatcher("/Declaracao.pdf");
rd.forward(p_request,p_response);
}
catch (JRException e2) {System.out.println("Jasper Reports Exception: "); e2.printStackTrace();}
catch (Exception e) {System.out.println("Exception Normal: " ); e.printStackTrace();}
return;
O erro que eu vejo é o seguinte:
Exception Normal:
java.lang.NullPointerException
at java.util.Hashtable.put(Unknown Source)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:603)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:160)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:472)
at ServletDeclaracao.doGet(ServletDeclaracao.java:293)
at ServletDeclaracao.doPost(ServletDeclaracao.java:423)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)
at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:169)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Alguém pode me dar uma dica do que esta acontecendo??
Desde ja eu agradeço