Servlet Jasper Sempre retorna vazio

2 respostas
D

Ola.
Fiz um servlet para me retornar um relatorio em pdf.
Porem o mesmo sempre me retorna vazio.

o codigo do meu servlet e
package servlet;    
    
import java.io.IOException;    
import java.sql.Connection;    
import java.util.Date;    
import java.util.HashMap;    
    
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.JasperRunManager;  
  
  
import sun.reflect.ReflectionFactory.GetReflectionFactoryAction;
import util.ConexaoFactory;    
    
/**  
* Servlet implementation class for Servlet: geraRelatorio  
*   
*/    
public class Rela extends HttpServlet {    
    
    static final long serialVersionUID = 1L;    
    @SuppressWarnings("unused")    
    private static String caminhoJava;    
        
     //Para abrir a conexão com o banco é necessario emprementar uma classe no java só para fazer a requesição de abrir as sessões com banco.    
    private Connection conexao;    
    
    public Rela() {    
        conexao = ConexaoFactory.getConnection();    
    }    
    
    @SuppressWarnings("unchecked")    
    public void doGet(HttpServletRequest request, HttpServletResponse response) {    
    
        caminhoJava = this.getServletContext().getRealPath("WEB-INF/classes");    
            
                // o getParameter é responsavel por recuperar os parametros passado pela url.    
        String relatorio = request.getParameter("relatorio");    
    
                // compara se o relatorio é do gerar Os Por data.    
      //  if(relatorio.equals("osData")){    
            try {    
                relatorioOsPorData(request, response);    
            } catch (JRException e) {    
                e.printStackTrace();    
            }    
        }    
    //}    
        
        
    
    /**  
     * metodo que gera relatorio de ordem de servico por data  
     * @param request  
     * @param response  
     * @throws JRException   
     */    
    @SuppressWarnings("unchecked")    
    private void relatorioOsPorData(HttpServletRequest request, HttpServletResponse response) throws JRException {    
        HashMap parametro = new HashMap();    
            
        @SuppressWarnings("unused")    
        //Date dataInicial, dataFinal = null;    
        String relatorio = getServletContext().getRealPath("/WEB-INF/report1.jasper");
        //String dtInicial = request.getParameter("dataInicial");    
        //String dtFinal = request.getParameter("dataFinal");    
            
                //É necessario emprementar uma classe para formatação das data para [Date]    
        //dataInicial = util.Funcoes.FormataData(dtInicial);    
        //dataFinal = util.Funcoes.FormataData(dtFinal);    
        parametro.put ("cod","A");    
        //parametro.put("dataInicial", dataInicial);    
        //parametro.put("dataFinal", dataFinal);    
            
        byte[] pdf = JasperRunManager.runReportToPdf(relatorio, parametro, conexao);    
        this.exibirRelatorio(pdf, response);    
    }    
    
    /** metodo que exibe os relatorios* */    
    public void exibirRelatorio(byte[] relatorio, HttpServletResponse response) {    
            ServletOutputStream out = null;    
            response.setContentType("application/pdf");    
            try {    
                out = response.getOutputStream();    
                out.write(relatorio);    
            } catch (IOException e) {    
                e.printStackTrace();    
            }       
    }    
}

No meu ireport fiz um relatorio so para exibir codigo, nome de todos com o sql

select * from cad_forn.
No ireport me mostra tudo certinho, porem o pdf que o servlet roda gera em branco.

Alguem sabe o qe pode ser.

Se ajuda isso
SQLExceptionNo suitable driver found for jdbc:firebirdsql:localhost/3050:C://banco//BD.FDB
24/12/2010 01:37:34 net.sf.jasperreports.engine.query.JRJdbcQueryExecuter <init>
AVISO: The supplied java.sql.Connection object is null.
24/12/2010 01:37:34 net.sf.jasperreports.engine.query.JRJdbcQueryExecuter <init>
AVISO: The supplied java.sql.Connection object is null.

2 Respostas

D

Ninguem tem ideia mesmo o que pode ser?

Qualque ideia ja ajuda

Miltex

Velho. . . Blz ???

Já me deparei com esse problema, verifica o caminho do arquivo . . .
vc deve passar o caminho completo . . .

tipo:
/usr/home/usuario/report1.jasper

v aí . . .

flws . . .
:lol:

Criado 24 de dezembro de 2010
Ultima resposta 27 de dez. de 2010
Respostas 2
Participantes 2