Erro iReport

1 resposta
J

Faaala GUJ,

bom tenho uma classe chamada Pesquisa que contem um método que retorna um ArrayList. No beanPessoa tenho os seguintes atributos:

String strNome;
String strSobreNome 
... //getters and setters

Estou tentando gerar um pdf com os nomes e sobrenomes mas está ocorrendo o seguinte erro:

javax.servlet.ServletException: Error instantiating servlet class servlets.svlImprimeSolicitacao
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	java.lang.Thread.run(Unknown Source)

E

java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException
	java.lang.Class.getDeclaredConstructors0(Native Method)
	java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	java.lang.Class.getConstructor0(Unknown Source)
	java.lang.Class.newInstance0(Unknown Source)
	java.lang.Class.newInstance(Unknown Source)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	java.lang.Thread.run(Unknown Source)

E

java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JRException
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
	java.lang.Class.getDeclaredConstructors0(Native Method)
	java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	java.lang.Class.getConstructor0(Unknown Source)
	java.lang.Class.newInstance0(Unknown Source)
	java.lang.Class.newInstance(Unknown Source)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	java.lang.Thread.run(Unknown Source)

O código d servlet está assim :

package servlets;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
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.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.util.JRLoader;

import Bean.beanPessoa;
import DAO.clPesquisaDao;

/**
 * Servlet implementation class svlImprimeSolicitacao
 */
public class svlImprimeSolicitacao extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public svlImprimeSolicitacao() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		clPesquisaDao pesquisa = new clPesquisaDao();
		
		ServletContext context = getServletContext();
		
		List<beanPessoas> lstbnPessoas = new ArrayList<beanPessoas>();
		
		try {
			lstbnPessoas = pesquisa.mtdPesquisaListaPessoasNome(" ");
		} catch (SQLException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}
		
		for(int i=0;i<lstbnPessoas.size();i++){
			
			beanPessoas bnPessoa = new beanPessoas();
		
			bnPessoa.setStrNome(lstbnPessoa.get(i).getStrNome());
			
			lstbnPessoas.add(bnPessoa);
			}
		
		byte bytes[] = null;
		
		JasperReport relatorioJasper = null;
		
		try {
			
			 relatorioJasper = (JasperReport)JRLoader.loadObject(context.getRealPath("/WEB-INF/jasper/relatorio.jasper"));   

			
		} catch (Exception e) {
			// TODO: handle exception
			
			System.out.println("Erro em relatorioJasper = ");
			e.printStackTrace();
		}
		
        // Stream com o .jasper   
           
        //InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper);   
             
  
        // O datasource   
        JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lstbnPessoas);   
  
        // Parametros do relatorios   
        Map parametros = new HashMap();   
           
        try {   
            bytes = JasperRunManager.runReportToPdf(relatorioJasper,parametros,ds);   
        } catch (JRException e1) {   
            // TODO Auto-generated catch block   
            e1.printStackTrace();   
        }    
        
      //JasperPrint impressao = null;   
        try {   
  
            //impressao = JasperFillManager.fillReport(relJasper, parametros, ds);   
            //JasperViewer viewer = new JasperViewer(impressao, true);   
            //viewer.setVisible(true);   
               
//           envia o relatório 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();   
  
        } catch (IOException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
  
           
       
  
}   
	
}

Onde estou errando ?

1 Resposta

furutani

Olá

Por esse erro:

java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException deduzo que falta adicionar os jars do iReport no classpath da sua aplicação.

Criado 24 de janeiro de 2011
Ultima resposta 24 de jan. de 2011
Respostas 1
Participantes 2