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,Code:templatePath
mais lorsque je veux récupérer mon fichier *.jasper (objet InputStream) celui ci est null.Code:templatePath
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:
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:
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