Problemas com Servlet e Ireport - Urgente

2 respostas
B

Prezados,

Estou com um problema na servlet que criei para chamar o relatório, só que não roda. Estou utilizando o Netbeans e Ireport para fazer o relatório. Importei os Jar, e importei o arquivo .jasper(relatorio). Ele abre a página e quando eu clico para gerar o relatório dá o seguinte erro.

Erro: C:\Documents and Settings\thiago\Relatorio\build\web\ItemComDesconto.jasper

Segue o Código Abaixo:

package relatorio;

import <a href="http://java.io">java.io</a>.<em>;

import <a href="http://java.net">java.net</a>.</em>;

import java.io.IOException;

import java.sql.DriverManager;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.JasperRunManager;

import net.sf.jasperreports.engine.util.JRLoader;

import com.mysql.jdbc.Connection;

import javax.servlet.<em>;

import javax.servlet.http.</em>;

/**
*

  • @author Thiago

  • @version
    */
    public class Gerar extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

    //obtém a conexão com o banco de dados
              System.out.println("1"); 
     Connection conn = null;
     try{
                         
     	Class.forName("com.mysql.jdbc.Driver");
     	conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/total", "root", "647226");
     	System.out.println("2");     
     }catch (Exception e){
                 System.out.println(e.getMessage()); 
                 
             }
     
     // gera o relatório
    
             ServletContext context = getServletContext();
     byte [] bytes = null;
     System.out.println("3"); 
                             
             try{
     //carrega os arquivos Jasper
                 System.out.println("4"); 
              
         JasperReport relatorioJasper = (JasperReport)JRLoader.loadObject(context.getRealPath("/ItemComDesconto.jasper"));
     System.out.println("5"); 
     // Quando tem parametros no relatório
     	System.out.println("6");
                     Map parametros = new HashMap();
     	parametros.put("pageRoot",context.getRealPath("/"));
     //	parametros.put("subReport", subrelatorioJasper);
     
     // direciona a saída do relatório para um stream
     	bytes = JasperRunManager.runReportToPdf (relatorioJasper,parametros, conn);
     
     }catch (JRException e){
                 System.out.println(e.getMessage()); 
             }
    
    
             if (bytes!= null && bytes.length>0){
     	// envia o relatorio em formato PDF para o browser
     	response.setContentType("application/pdf");
     	response.setContentLength(bytes.length);
     	ServletOutputStream ouputStream = response.getOutputStream();
     	ouputStream.write(bytes, 0, bytes.length);
     	ouputStream.flush();
     	ouputStream.close();
     }
    

    }

    //
    /** Handles the HTTP GET method.

    • @param request servlet request
    • @param response servlet response
      */
      protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }

    /** Handles the HTTP POST method.

    • @param request servlet request
    • @param response servlet response
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }
    /** Returns a short description of the servlet.
    
    */
    
    public String getServletInfo() {
    
    return Short description;
    
    }
    
    // 
    
    }
    

2 Respostas

ASOBrasil

bahiathiago,

Só pelo erro apontado não consegui descobrir qual o problema, talvés seja o caminho para o arquivo, talvés seja algum problema de parâmetros que estão sendo passados

Veja primeiro se o seu relatório funciona sem ser em servlet:
:arrow: http://www.ensode.net/jasperreports_intro.html

Crie um relatório bem fácil como esse abaixo que não trabalhe com parâmetros nem dados de banco e faça um teste:

Exemplo de servlet passando parâmetros nulos:
:arrow: http://www.ensode.net/jasperreports_pdf_send_to_browser.html

Arquivo jrxml para ser compilado:

<?xml version="1.0"?>
<!DOCTYPE jasperReport
  PUBLIC "-//JasperReports//DTD Report Design//EN"
  "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="Simple_Report">
 <detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <text><![CDATA[Hello World!]]></text>
      </staticText>
    </band>
  </detail>
</jasperReport>

ASOBrasil

B

Já fiz tudo isso que você mandou, rodou blz. Mais quando parto para a servlet está dando erro ao carregar o objeto, aí mostra o caminho. Blz.

Criado 13 de dezembro de 2006
Ultima resposta 14 de dez. de 2006
Respostas 2
Participantes 2