2 votes

Problèmes de chemin d'accès à Jasper Reports, impossibilité de trouver les fichiers .jasper lors de l'exécution sur un serveur d'applications

Lors de l'exécution dans Tomcat (à partir d'Eclipse avec débogueur), comment obtenir un fichier .jasper (par exemple sous la forme d'un InputStream) pour l'utilisateur ? JasperFillManager.fillReport() à utiliser ? Actuellement, nos fichiers .jasper se trouvent dans /WEB-INF/jasper .

J'ai besoin d'une solution qui ne se casse pas en fonction de l'endroit d'où vous exécutez le rapport. S'il est débogué en exécutant Tomcat depuis Eclipse, System.getProperty("user.dir") renvoie à C:/Eclipse ... mais évidemment, ce chemin sera différent lorsqu'il sera déployé sur un serveur.

Comment contourner ce problème ?

0voto

Si vous n'avez pas l'intention de remplacer le fichier .jasper après sa création, vous pouvez utiliser les ressources et l'outil de gestion des ressources. getResourcesAsStream .

0voto

GnomeKing Points 23

Je crois que vous pouvez utiliser l'objet d'application (en supposant que vous utilisez des JSP plutôt que des servlets - je ne les ai pas utilisés).

InputStream input = new FileInputStream(new File(application.getRealPath("/WEB-INF/jasper")+"/report.jasper"));

0voto

Mifune Points 120

J'ai réussi à le faire fonctionner à partir de tomcat/eclipse en changeant le répertoire de travail de la configuration de lancement de Tomcat à partir d'Eclipse. Cela vous permet de passer un chemin relatif à fillReport() dans le code Java. Mais je n'ai pas encore essayé de tester à partir de websphere... (quelque chose me dit que je vais bientôt maudire à nouveau IBM).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X