Bonjour,

Je suis confronté à un souci de path.
Je créé à l'heure actuelle des reports grâce à jasperreport.
J'ai réussi à m'affranchir de la compilation des fichiers *.jrxml dans le code mais maintenant je suis confronté à un nouveau souci du au path.

A l'origine les fichiers *.jrxml étaient stockés sous une arborescence server que nous appelerons
Maintenant mes fichiers *.jrxml sont déjà compilés sous forme de fichier *.jasper et sont stockés sous exactement la même arborecence,
mais lorsque je veux récupérer mon fichier *.jasper (objet InputStream) celui ci est null.

Je joins le code dans lequel on trouvera l'ancienne méthode avec la compilation du fichier *.jrxml et la nouvelle version sans la compilation du fichier *.jrxml, mais avec l'appel direct des *.jasper

Ancienne version:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
// Init de la connexion
initCurrentConnection();
// Récup de la connexion
curConnection = getCurrentConnection();
 
// Ancien code, chargement et compilation des *.jrxml
jasperDesign = JRXmlLoader.load(templatePath);
jasperReport = JasperCompileManager.compileReport(jasperDesign);
 
// Régération du PDF
jasperPrint = JasperFillManager.fillReport(jasperReportStream, parameters, curConnection);

Nouvelle version :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
// Init de la connexion
initCurrentConnection();
// Récup de la connexion
curConnection = getCurrentConnection();
 
// Nouveau code, sans compilation des *.jrxml, appel directement du jasper 
// Lorsque le fichier est sous cette arborescence cela fonctionne
InputStream jasperReportStream = getClass().getClassLoader().getResourceAsStream("conf/server/insuranceContract.jasper");
 
// Mais lorsque le fichier est sous la même arbo que celle des *.jrxml cela ne fonctionne pas
InputStream jasperReportStream = getClass().getClassLoader().getResourceAsStream(resourceName);
 
// Régération du PDF
jasperPrint = JasperFillManager.fillReport(jasperReportStream, parameters, curConnection);

Merci à tous