Newsgroup: it.comp.java
Titolo: Jasper Reports - Integrazione

Sto cercando di Integrare Jasper Reports (una libreria che genera Report)
all'interno di un applicazione Web ma sto avendo una marea di problemi. Vi
posto il codice, estremamente semplice, che dovrebbe Realizzare il primo
passo, cioč compilare l'XML dove ho definito il Layout del Report e
generare da qualche parte il file .jasper precompilato. 
Ovviamente, purtroppo, non va.
Spero che qualcuno possa aiutarmi.
CODICE:
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.*;
import java.sql.*;
public class Sample {
    public Sample() {    }
    public static void main(String[] args)
    { try
        {
String xmlFileName = "BarbecueReport.xml"
String jasperFileName = "BarbecueReport.jasper";
JasperCompileManager.compileReportToFile(xmlFileName,jasperFileName);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }}
ERRORE:
Exception in Thread "Main" java.lang.NoClassDefFoundError: 
org/apache/common/digester/Digester at
net.sf.jasperreports.engine.JasperCompileManager.compileReport
(JasperCompileManager.java:124) at Sample.main (Sample.java:17)

 (JasperCompileManager.java:124) at Sample.main (Sample.java:17)
Devi includere alcuni jar nel classpath di esecuzione, li trovi nella 
sottodirectory "lib" della distribuzione di Jasper Reports.
Sorgono problemi se l'applicazione usa versioni diverse di questi jar; 
non mi sembra il tuo caso, ma ricordatelo quando integrerai la 
generazione di report in una webapp "vera" con altri componenti.
-- 
  -- + Setaceous Pig + --
http://megadix.users.mcs2.netarray.com/
http://www.jroller.com/page/megadix/

 sottodirectory "lib" della distribuzione di Jasper Reports.
Non so se ho capito bene, in ogni modo ti dico come ho fatto.
Effettivamente nella cartella Lib di JasperReports c'erano un po' di Jar
Li ho copiati e spostati nella cartella Lib della SDK. Poi ho aggiornato le
variabili d'ambiente in questo modo:
CLASSPATH=
C:\j2sdk1.4.2_04\lib\jasperreports-0.6.0.jar;
C:\j2sdk1.4.2_04\lib\jfreechart-0.9.21.jar;
C:\j2sdk1.4.2_04\lib\commons-digester-1.3.jar
(le prime due voci c'erano già, ho aggiunto già la terza)
Devo aggiungere altro o basta così ? Non c'è un modo per aggiungere tutte
le Librerie in blocco?
In ogni modo dopo aver fatto così non mi segnala più l'errorone di prima,
la compilazione viene effettuata correttamente, ma mi da solo questo. 
C:\j2sdk1.4.2_04>java sample
Exception in thread "main" java.lang.NoClassDefFoundError: sample
Puoi aiutarmi ?
-- 
Cathàll © - 
www.interisti.org
HT - Djurgårdens IT (233519) - V.151
Fantacalcio Coratino - 
http://legabarcommercio.splinder.com

 Puoi aiutarmi ?
Ho fatto da solo, il signor Google ha intercesso per me :-)
Dopo aver aggiunto manualmente 56 variabili d'ambiente sono riuscito a
creare il .jasper
Grazie!


 
Allora, scusa se sono pedante ma dovrai pur imparare, no ?
- prima cosa: togli i jar dal CLASSPATH!!! E rimetti a posto le 
variabili d'ambiente!!! (consiglio da amico)
- adesso, al posto di "sample" scrivi "Sample" (notare la maiuscola)
- aggiungi l'opzione "-cp" al comando "java" (leggi i doc per i dettagli)
Alla fine uscirà un comando del genere:
java
-cp C:\j2sdk1.4.2_04\lib\jasperreports-0.6.0.jar;
C:\j2sdk1.4.2_04\lib\jfreechart-0.9.21.jar;
C:\j2sdk1.4.2_04\lib\commons-digester-1.3.jar
Sample
mi raccomando tutto su una riga sola!!!


 mi raccomando tutto su una riga sola!!!
Grazie, come ti ho già detto c'erano da aggiungere un 5-6 variabili
d'ambiente e poi è funzionato tutto.. Ora purtroppo il problema è che
Compila ed esegue correttamente, ma i report generati in PDF sono *vuoti*
Pensavo fosse colpa di questa istruzione
JasperFillManager.fillReportToFile(CompiledfileName, parameters,conn);
Dove Parameters e Conn sono due riferimenti a null. Che dici? <Se non hai
esperienza con Jasper o con Reportistica non preoccuaprti :-)>
