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á