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 appeleronsMaintenant 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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part templatePath
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:
Nouvelle 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);
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
Partager