Bonjour,

Ayant réussi à m'affranchir de la compilation des jrxml dans le code, je suis confronté à un nouveau souci du au path.

A l'origine les *.jrxml étaient stockés sous une arborescence server que nous appelerons Maintenant mes *.jasper sont stockés sous exactement la même arborecence mais lorsque je veux récupérer ma donnée (objet InputStream) celle ci est null.

Je joins le code dans lequel on trouvera l'ancienne méthode avec la compilation des *.jrxml et la nouvelle version sans la compilation des *.jrxml, 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