Relatorio em pdf

2 respostas
W

Estou com um código que gera um relatório em pdf utilizando o JasperReport, tive q fazer alterações no relatório com um JasperReport + recente e quando chega na linha: JasperReport rel = JasperManager.loadReport(tmpEntra);
ocorre o seguinte erro: Error loading object from InputStream
Obs.: o código é um servlet

2 Respostas

K

posta o código ai lek

fica + facil analisar

abraços

W

ta ai o método:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

{//throws ServletException, IOException {

try

{
Map param = new HashMap();
  
  String formato = request.getParameter("formato");
  String nomeRelatorio = "/relatorio/" + request.getParameter("relatorio");
  
  Enumeration e = request.getParameterNames();
  while (e.hasMoreElements())
  {
   String p = (String)e.nextElement();
   param.put(p,request.getParameter(p));
  }
  
  InputStream logo = getServletContext().getResourceAsStream("/relatorio/unifor.jpg");
  param.put("logo", logo);
  
  //System.out.println( ClassLoader.getSystemResource(nomeRelatorio).getPath().toString() );
  
  InputStream tmpEntra = getServletContext().getResourceAsStream(nomeRelatorio);

  JasperReport rel = JasperManager.loadReport(tmpEntra); //erro ocorre aqui
  
  JasperPrint prin = JasperFillManager.fillReport(rel, param, ConexaoBD.conexao);
  
  if (formato.equals("pdf"))
  {
   response.setContentType("application/pdf");
   OutputStream saida = response.getOutputStream();
   JasperManager.printReportToPdfStream(prin, saida);
   saida.close();
  }
  else
  {
   if (formato.equals("xls"))
   {
    response.setContentType("application/msexcel");
    OutputStream saida = response.getOutputStream();
    JasperExportManager.exportReportToXmlStream(prin, saida);
    //JasperManager.printReportToPdfStream(prin, saida);
    saida.close();
   }
   else
   {
    if (formato.equals("html"))
    {
     response.setContentType("text/html");
     //OutputStream saidaTmp = new OutputStream();
     PrintWriter saida = response.getWriter();
     //JasperExportManager.exportReportToXmlStream(prin, saidaTmp);
     //JasperManager.printReportToPdfStream(prin, saida);
     saida.close();
    }
   }
  }
  
 }
 catch (Exception e)
 {
  String mensagem = e.getMessage();
  System.out.println(e.getMessage() + e.getCause());
 }
}
Criado 10 de julho de 2006
Ultima resposta 10 de jul. de 2006
Respostas 2
Participantes 2