Erro ao gerar relatório pdf

3 respostas
Z

boa noite,

está dando problema no meu tomcat quando eu tento gerar relatório em pdf…

estou utilizando o tomcat 6.0.16

a meu servlet é o seguinte…

package rh;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.util.*;
import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;
import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.data.<em>;

import net.sf.jasperreports.engine.</em>;

import org.apache.commons.beanutils.*;

import rh.DAOEmpresa;

import rh.Empresa;

import rh.Teste;

/**

  • Servlet implementation class for Servlet: relGraficoIndividual
*/

public class relGraficoIndividual extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

static final long serialVersionUID = 1L;

public static Connection con;

Configuracao conf = new Configuracao();
/* (non-Java-doc)
 * @see javax.servlet.http.HttpServlet#HttpServlet()
 */
public relGraficoIndividual() {
	super();
}   	

/* (non-Java-doc)
 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	// TODO Auto-generated method stub
	doPost(request,response);
}  	

/* (non-Java-doc)
 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	conexao();
	HttpSession session = request.getSession(true);
	Usuario user = (Usuario)session.getAttribute("usuario");
	if (user != null){
		if (user.getStatus() != 4){
			Projeto proj = (Projeto)session.getAttribute("projeto");
			if (proj != null){
				DAOEmpresa dEmp = new DAOEmpresa();
				Empresa emp = null;
				String pathJasper = getServletContext().getRealPath("/WEB-INF/classes/rh/")+"/";
				String path = getServletContext().getRealPath("/");
				Map parametros = new HashMap();
				int codEmpresa;
				int ciclo;
				try{
					codEmpresa = Integer.parseInt(request.getParameter("codEmpresa"));
				}catch(Exception ex){
					codEmpresa = 0;
				}
				try{
					ciclo = Integer.parseInt(request.getParameter("ciclo"));
				}catch(Exception ex){
					ciclo = 0;
				}
				
				if (user.getStatus() == 3){
					emp      = dEmp.getEmpresaUsuario(codEmpresa,user.getCodigo());
				}
				else{
					emp      = dEmp.getEmpresaSupervisor(proj.getCodigo(),codEmpresa);
				}
				
				if (emp != null){
					ArrayList array = new ArrayList();
					Teste teste = new Teste();
					teste.setNomeFantasia("a");
					teste.setRanking("a");
					teste.setRankingSegmento("d");
					//emp.setRanking("1");
					//emp.setRankingSegmento("1");
					array.add(teste);
					//parametros.put("empresa", emp.getNomeFantasia());
					parametros.put("ciclo", ciclo);
					//parametros.put("ranking", "1");
					//parametros.put("rankingSegmento", "2");
					//parametros.put("graficoSetor", null);
					try{
			            JRDataSource jrDataSourse = new JRBeanArrayDataSource(array.toArray());							
						JasperPrint impressao = JasperFillManager.fillReport(pathJasper+"relGraficoIndividual.jasper", parametros,jrDataSourse);						
						JasperManager.printReportToPdfFile(impressao,path+"/rel/relGraficoIndividual.pdf");
						//response.sendRedirect("relatorioIndividual.pdf");
						response.sendRedirect("rel/relGraficoIndividual.pdf");
					}catch(Exception e){
						response.getWriter().println("Erro ao gravar o relatório: "+e);
					}
				}else{
					response.getWriter().println("Empresa inexistente");
				}
			}else{
				response.getWriter().println("Nenhum Projeto Selecionado");
			}
		}else{
			response.getWriter().println("Usuário não possui privilégios");
		}
	}else{
		response.getWriter().println("Usuário não está logado!");
	}
}   

public void conexao(){
	try{
		if ((con == null) || con.isClosed()){
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection(conf.getBDRelatorio(),conf.getUsuarioRelatorio(),conf.getSenhaRelatorio());
		}
	}catch(Exception ex){
		System.out.println("nõ foi possível conectar ao banco");
		ex.printStackTrace();
	}
}

}

e o erro no tomcat é o seguinte

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.NoClassDefFoundError: org/apache/commons/beanutils/PropertyUtils

net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:115)

net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:100)

net.sf.jasperreports.engine.data.JRBeanArrayDataSource.getFieldValue(JRBeanArrayDataSource.java:90)

net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:814)

net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:778)

net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1417)

net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111)

net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:891)

net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:814)

net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)

net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)

net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)

rh.relGraficoIndividual.doPost(relGraficoIndividual.java:104)

rh.relGraficoIndividual.doGet(relGraficoIndividual.java:49)

javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.ClassNotFoundException: org.apache.commons.beanutils.PropertyUtils

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)

java.lang.ClassLoader.loadClassInternal(Unknown Source)

net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:115)

net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:100)

net.sf.jasperreports.engine.data.JRBeanArrayDataSource.getFieldValue(JRBeanArrayDataSource.java:90)

net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:814)

net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:778)

net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1417)

net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111)

net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:891)

net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:814)

net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)

net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)

net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)

rh.relGraficoIndividual.doPost(relGraficoIndividual.java:104)

rh.relGraficoIndividual.doGet(relGraficoIndividual.java:49)

javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.


Apache Tomcat/6.0.16

Agradecendo desde já

Tiago Zaniquelli

3 Respostas

edineimanica

Ele esta dizendo que não esta encontrando uma classe…
veja…
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/PropertyUtils

Deve estar faltando algum jar…
Tenta ver se você adicionou todos os jar necessários para o jasper report…

furutani

Coloque o jar commons-beanutils no classpath.

W

Se não der certo coloque o jar do commons-beanutils.jar dentro do server\default\lib do seu JBoss.
http://commons.apache.org/beanutils/

Criado 12 de março de 2008
Ultima resposta 28 de nov. de 2008
Respostas 3
Participantes 4