Ciao a tutti sto provando a realizzare un report con jasperreports.

Qui sotto ho realizzato la classe che contiene le info per ottenere il report in formato pdf:



package provareport;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;


import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.view.JasperViewer;
import java.sql.DriverManager;

public class cls {
public cls() {
}


public static void funzione(){

Connection conn=null;

try{


// First, load JasperDesign from XML and compile it into JasperReport

JasperDesign jasperDesign = JRXmlLoader.load("ReportSocieta.xml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

// Second, create a map of parameters to pass to the report.

Map parameters = new HashMap();
parameters.put("Title", "Lista Societa");


// Third, get a database connection
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbcracle:thin:@aspire:1521:gianluca", "scott", "tiger");




// Fourth, create JasperPrint using fillReport() method

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);


// You can use JasperPrint to create PDF
JasperExportManager.exportReportToPdfFile(jasperPr int, "EmpDeptReport.pdf");


// Or to view report in the JasperViewer
JasperViewer.viewReport(jasperPrint);


} catch (ClassNotFoundException exc) {
// TODO Auto-generated catch block
exc.printStackTrace();
} catch(JRException exc) {
System.out.println(exc.getMessage());
System.out.println("Errore Classe");
} catch (SQLException ex) {
/** @todo Handle this exception */
System.out.println(ex.getMessage());
}



}

}

Però non sono riuscito a farlo funzionare con le jsp: in particolare devo configurare qualcosa per non avere errori in fase di funzionamento? infatti ho provato a richiamare da jsp (<%cls.funzione();%>) la funzione nella classe però ho ottenuto questi errori:

StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception

java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester

java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester

at provareport.cls.funzione(cls.java:34)

at org.apache.jsp.jsp1_jsp._jspService(jsp1_jsp.java: 59)

at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:94)

at javax.servlet.http.HttpServlet.service(HttpServlet .java:802)

at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:321)

at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:292)

at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:236)

at javax.servlet.http.HttpServlet.service(HttpServlet .java:802)

at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:237)

at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:157)

at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:214)

at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)

at org.apache.catalina.core.StandardContextValve.invo keInternal(StandardContextValve.java:198)

at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:152)

at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)

at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:137)

at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)

at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)

at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:102)

at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)

at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)

at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)

at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:929)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(Co yoteAdapter.java:160)

at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:799)

at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:705)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(P oolTcpEndpoint.java:577)

at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Thread.java:534)



Premetto che uso jbuilder 2005.

Come posso risolvere il problema?

Ciaoooooo