Faaala GUJ,
bom tenho uma classe chamada Pesquisa que contem um método que retorna um ArrayList
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 ?