Erro javax.servlet.ServletException: Servlet execution threw an exception IReport

2 respostas
E

Boa tarde a todos.

Estou com um problema com iReport no momento q mando gerar um relatorio PDF através de um arquivo .jasper.

vejam a classe abaixo:

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletContext;
import model.DepartamentoDAO;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.util.*;
import net.sf.jasperreports.view.JasperViewer;

public class RelatorioDepartamento {
    private Integer codDepto;
    private String nomeDepto;
    private static List <Departamento> listDepto; 
    
    
    
    public static void execute(ServletContext sc, HttpServletRequest request, HttpServletResponse response) {        
        try {
            List <RelatorioEmpregadoDepartamento> listRelEmpDep = new ArrayList<RelatorioEmpregadoDepartamento>();
            
            listDepto = DepartamentoDAO.getAll(); 
            
            for(int i=0; i < listDepto.size(); i++){
                RelatorioEmpregadoDepartamento relDepto = new RelatorioEmpregadoDepartamento();
                relDepto.setCodDepto(listDepto.get(i).getCodDepartamento());
                relDepto.setNomeDepto(listDepto.get(i).getNomeDepartamento());
                listRelEmpDep.add(relDepto);
            }
            
            JRDataSource jrds = new JRBeanCollectionDataSource(listRelEmpDep);
                        
            // parametros do relatorio
            HashMap parameters = new HashMap();
            // lendo arquivo jasper
            File reportFile = new File(sc.getRealPath("/rel/teste.jasper"));
            String fileName ="teste";
            byte[] bytes = null;
            try {
                //bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, Conexao.getConnection());
                //bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, jrds);
                JasperPrint print = JasperFillManager.fillReport(reportFile.getPath(), parameters, jrds);
				
		bytes = JasperExportManager.exportReportToPdf(print); //demora um pouco e ocorre 
                                      //a exceção mencionada no assunto
                                     //antes mesmo de eu mandar imprimir
                                     //através do   e.printStackTrace();
                JasperViewer.viewReport( fileName + ".pdf", false );   
            } catch (JRException e) {
                e.printStackTrace();
                return;
            }                              
            //
            if (bytes != null && bytes.length > 0) {
                response.setContentType("application/pdf");
                response.setContentLength(bytes.length);
                ServletOutputStream ouputStream = response.getOutputStream();
                ouputStream.write(bytes, 0, bytes.length);
                ouputStream.flush();
                ouputStream.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public List<Departamento> getListDepto() {
        return listDepto;
    }

    public void setListDepto(List<Departamento> listDepto) {
        this.listDepto = listDepto;
    }

    public Integer getCodDepto() {
        return codDepto;
    }

    public void setCodDepto(Integer codDepto) {
        this.codDepto = codDepto;
    }

    public String getNomeDepto() {
        return nomeDepto;
    }

    public void setNomeDepto(String nomeDepto) {
        this.nomeDepto = nomeDepto;
    }
    
}

Alguém jah passou por algo parecido e pode me ajudar? Estou fazendo algo de errado?

Agradeço desde jah ah atenção dispensada.

2 Respostas

E

msg de erro completa.

javax.servlet.ServletException: Servlet execution threw an exception
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:313)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:393)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
E

Galera consegui resolver o erro, estavam faltando algumas api’s.

Criado 28 de abril de 2008
Ultima resposta 8 de mai. de 2008
Respostas 2
Participantes 1