salut,
j'ai développer une application JEE et je travail avec struts2
je travail avec serveur jboss
j'arrive à générer un rapport pdf à travers jasperreport
le code est :comme vous voyer le fichier test.jrxml se trouve dans mon disque dur (C:\Report )
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
16
17
18
19
20
21
22
23
24
25
26
27String url = "jdbc:mysql://localhost/Nom_Base"; String login = "root"; String password = "root"; Connection connection = null; Driver monDriver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(monDriver); connection = (Connection) DriverManager.getConnection(url, login, password); JasperDesign jasperDesign = JRXmlLoader.load("C://Report/test.jrxml"); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); // - Paramètres utilisés dans le rapport Map parameters = new HashMap<String, String>(); parameters.put("titre", "Listing les "); // - "remplissage" du rapport pour pouvoir ensuite l'exporter au format qu'on veut // (en pdf, en xls, en html, en jpeg ... on a de quoi s'amuser) JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection); // creation du fichier .PDF JasperExportManager.exportReportToPdfFile(jasperPrint, "C:\\Report\\test.pdf");
et le fichier générer d’après mon code doit être placer dans le même répertoire
actuellement j'ai créer un dossier nommé : Reporting dans WebContent de mon application JEE et j'ai placer le fichier test.jrxml dans ce dossier
donc le but est comment accéder à ce fichier dans le code de génération de rapport pdf
ainsi je veux générer le fichier test.pdf dans le même dossier ( Reporting qui est sous WebContent)
j'essaye avec ce code :
le problème lors de l’exécution de l'application est :
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75public class GeneratePDF extends ActionSupport implements ServletRequestAware,ServletResponseAware{ private static final long serialVersionUID = 1L; private HttpServletResponse response; private HttpServletRequest reques; // - Paramètres de connexion à la base de données String url = "jdbc:mysql://localhost/name_base"; String login = "root"; String password = "root"; Connection connection = null; public String generer() throws JRException, SQLException { Driver monDriver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(monDriver); connection = (Connection) DriverManager.getConnection(url, login, password); String filePath = reques.getSession().getServletContext().getRealPath("/Reporting "); File fileNew = new File(filePath,"test.jrxml"); JasperDesign jasperDesign = JRXmlLoader.load(fileNew ); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); // - Paramètres utilisés dans le rapport Map parameters = new HashMap<String, String>(); parameters.put("titre", "Listing les "); // - "remplissage" du rapport pour pouvoir ensuite l'exporter au format qu'on veut // (en pdf, en xls, en html, en jpeg ... on a de quoi s'amuser) JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection); // creation du fichier .PDF JasperExportManager.exportReportToPdfFile(jasperPrint, "C:\\Report\\test.pdf"); return "success"; } public void setServletRequest(HttpServletRequest request){ this.reques = request; } public HttpServletRequest getServletRequest(){ return reques; } public void setServletResponse(HttpServletResponse response){ this.response = response; } public HttpServletResponse getServletResponse(){ return response; } }
la ligne 56 est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 22:48:30,407 ERROR [Jsr168Dispatcher] Could not execute action java.lang.NullPointerException at com.test.GeneratePDF.generer(GeneratePDF.java:56)
Code : Sélectionner tout - Visualiser dans une fenêtre à part String filePath = reques.getSession().getServletContext().getRealPath("/Reporting ");
donc il n'arrive pas à acceder au dossier Reporting qui est sous WebConext dans mon application JEE
Partager