Bonjour,
J'ai lu l'article.
Je ne connais que trop peu Java. J'ai voulu faire un essai de cette librairie pour voir ce qu'il était possible de faire grace à Japser.
J'ai suivi le tuto à la lettre. J'ai modifier 2/3 trucs pour que ca puisse logiquement fonctionner en utilisant Oracle en lieu et place de Mysql.
Voici le code complet que j'ai utiliser pour ma classe GeneratePDF :
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import oracle.jdbc.driver.OracleDriver;
public class GeneratePDF {
public static void main(String[] args) {
// - Paramètres de connexion à la base de données
String url = "jdbc:oracle:thin:@XXX.XXX.XXX.XXX:YYYY:mybase";
String login = "mylogin";
String password = "mypassword";
Connection connection = null;
try {
// - Connexion à la base
OracleDriver monDriver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(monDriver);
connection = DriverManager.getConnection(url, login, password);
// - Chargement et compilation du rapport
JasperDesign jasperDesign = JRXmlLoader.load("C:\\classic.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
// - Paramètres à envoyer au rapport
Map parameters = new HashMap();
parameters.put("Titre", "Titre");
// - Execution du rapport
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
// - Création du rapport au format PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, "C:\\classic.pdf");
} catch (JRException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
connection.close();
}
}
} |
Déjà Eclipse me dit dans Problems :
Citation:
|
connection ne peut pas être résolu
|
Il m'indique ceci sur la ligne "connection.close();"
Si je compile et démarre Generate.java comme indiqué dans le tuto,
j'obtiens:
Citation:
Exception in thread "main" java.lang.Error: Problème de compilation non résolu :
connection ne peut pas être résolu
at GeneratePDF.main(GeneratePDF.java:53)
|
Si je mets le "connection.close();" en commentaire et que j'execute, j'obtiens :
Citation:
java.io.IOException: CreateProcess: javac -classpath "C:\Documents and Settings\chtom\workspace\JasperTest\bin;C:\Documents and Settings\chtom\workspace\JasperTest\lib\classes12.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-beanutils-1.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-collections-2.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-digester-1.7.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-api-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\itext-1.3.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\jasperreports-1.2.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\ojdbc14.jar" "C:\Documents and Settings\chtom\workspace\JasperTest\classic_1153310463593_477980.java" error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:62)
at net.sf.jasperreports.engine.design.JRAbstractClassCompiler.compileUnits(JRAbstractClassCompiler.java:67)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:189)
at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:211)
at GeneratePDF.main(GeneratePDF.java:35)
NESTED BY :
java.io.IOException: CreateProcess: javac -classpath "C:\Documents and Settings\chtom\workspace\JasperTest\bin;C:\Documents and Settings\chtom\workspace\JasperTest\lib\classes12.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-beanutils-1.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-collections-2.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-digester-1.7.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-api-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\itext-1.3.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\jasperreports-1.2.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\ojdbc14.jar" "C:\Documents and Settings\chtom\workspace\JasperTest\classic_1153310463593_477980.java" error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:62)
at net.sf.jasperreports.engine.design.JRAbstractClassCompiler.compileUnits(JRAbstractClassCompiler.java:67)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:189)
at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:211)
at GeneratePDF.main(GeneratePDF.java:35)
NESTED BY :
net.sf.jasperreports.engine.JRException: Error compiling report java source files : C:\Documents and Settings\chtom\workspace\JasperTest\classic_1153310463593_477980.java
at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:93)
at net.sf.jasperreports.engine.design.JRAbstractClassCompiler.compileUnits(JRAbstractClassCompiler.java:67)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:189)
at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:211)
at GeneratePDF.main(GeneratePDF.java:35)
Caused by: java.io.IOException: CreateProcess: javac -classpath "C:\Documents and Settings\chtom\workspace\JasperTest\bin;C:\Documents and Settings\chtom\workspace\JasperTest\lib\classes12.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-beanutils-1.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-collections-2.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-digester-1.7.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-api-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\itext-1.3.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\jasperreports-1.2.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\ojdbc14.jar" "C:\Documents and Settings\chtom\workspace\JasperTest\classic_1153310463593_477980.java" error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:62)
... 5 more
|
Je débute complétement en Java.
Mon but étant d'avoir un editeur de report gratuit (iReport) et d'executer des reports pré-établi en passant des paramètres à partir de PHP.
Si vous avez des solutions plus simple que de passer par un serveur d'application java, je suis preneur.
Merci de m'avoir lu jusqu'au bout