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 :
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
 
 
    String 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");
comme vous voyer le fichier test.jrxml se trouve dans mon disque dur (C:\Report )

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 :

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
75
 
public 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;
    		  }
 
 
 
}
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
22:48:30,407 ERROR [Jsr168Dispatcher] Could not execute action
java.lang.NullPointerException
	at com.test.GeneratePDF.generer(GeneratePDF.java:56)
la ligne 56 est :
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