Erro ao gerar relatório

1 resposta
M

Boa tarde pessoal, alguem poderia me ajudar com este erro??
no meu browser aparece o seguinte erro:

HTTP Status 500 -

type Exception report

message

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

exception

java.lang.NullPointerException
	br.com.servlet.GeraRelatorios.doGet(GeraRelatorios.java:62)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.

e no console do eclipse o seguinte erro:

java.lang.NoClassDefFoundError: JRDataSource
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2733)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1124)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1612)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
	at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:138)
	at com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:96)
	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:399)
	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:354)
	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:468)
	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:264)
	at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)

segue minha servlet:

import java.io.IOException;  
import java.sql.Connection;  
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;  
  
public class GeraRelatorios extends HttpServlet {  
      
      
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)  
    throws IOException, ServletException  {  
          
        String[] vlParametro = request.getParameterValues("nome");  
          
        // obtém a conexão com o banco de dados  
        Connection conn = null;  
        try {  
            Class.forName("com.mysql.jdbc.Driver");  
            conn = DriverManager.getConnection(  
                    "jdbc:mysql://localhost:3306/mensalidade", // coloque o IP se não for usado localhost  
                    "root",        // mude para o nome do usuário do seu bd  
                    "");   // mude para a senha deste usuário  
            		System.out.println("Conectando ao banco");
        } catch (Exception e) {  
            System.out.println("Erro ao obter conexao via DriverManager: "                      
                    + e.getMessage());  
        }  
          
        // gera o relatório  
        ServletContext context = getServletContext();  
        byte[] bytes = null;  
        try {  
              
              
            // carrega os arquivos jasper  
            JasperReport relatorioJasper = (JasperReport)JRLoader.loadObject(  
                    context.getRealPath("/WEB-INF/reports/Matriculas.jasper"));  
              
            // parâmetros, se houverem  
            Map parametros = new HashMap();  
            parametros.put("nr_op", vlParametro[0]);  
              
            // direciona a saída do relatório para um stream  
            bytes = JasperRunManager.runReportToPdf(relatorioJasper,parametros,conn);  
        } catch (JRException e) {  
            e.printStackTrace();  
        }  
        if (bytes != null && bytes.length > 0) {  
            // 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();  
        }  
          
    }  
  
    
}

agradeço desde já

1 Resposta

feltraco

Esse erro normalmente eh quando falta o JAR

java.lang.NoClassDefFoundError: JRDataSource

Verifica se nao esta faltando nenhum jar no seru projeto e tb mudaria pra algo assim:

JasperExportManager.exportReportToPdfStream(jasperPrint, saida);

Att

Criado 9 de setembro de 2010
Ultima resposta 9 de set. de 2010
Respostas 1
Participantes 2