Caros:
Estou usando o NetBeans 7.0.1, e baixei o plugin mais recente do iReports e do Jasperreports. Estou tentando criar um exemplo simples de relatório, e consegui perfeitamente com o iReport. Consegui exibir corretamente no modo preview... Entretanto, quando executo através de um projeto web, estou recebendo o erro:
AVISO: StandardWrapperValve[RelatorioServlet]: PWC1406: Servlet.service() for servlet RelatorioServlet threw exception java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JasperFillManager at br.com.path.relatorios.Relatorio.doPost(Relatorio.java:50) at br.com.path.relatorios.Relatorio.doGet(Relatorio.java:76) at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JasperFillManager at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1518) at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1368) ... 29 more
Esse erro é lançado na minha classe:
import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
public class Relatorio extends HttpServlet {
public static Connection con;
public static String banco = "meubanco";
public static String usuario = "user";
public static String senha = "senha";
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + banco, usuario, senha);
String pathJasper = getServletContext().getRealPath("/WEB-INF/classes/br/com/path/relatorios/")+ "/";
String path = getServletContext().getRealPath("/");
JasperPrint impressao = JasperFillManager.fillReport(pathJasper + "cidades.jasper", null, con);
JasperViewer viewer = new JasperViewer( impressao, true );
viewer.show();
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
JasperPrint impressao = JasperFillManager.fillReport(pathJasper + "cidades.jasper", null, con);
já incluí as bibliotecas:
commons-beansutils-1.8.2
commons-collections-3.2.1
commons-digester-1.7
commons-logging-1.1
iText-2.1.7
jasperreports-4.1.1
jfreechart-1.0.12
jxl-2.6.10
log4j-1.2.15
commons-javaflow-20060411
com-jaspersoft-ireport
Alguma ideia do que pode ser?