salut,
je veux faire tourner un simple exemple de reporting (jasper report) avec une application JEE (faite avec EJB3 et struts2)
j'arrive à faire un code de reporting en java et non pas avec JEE ( avec struts2)
le code en java est :
avec bien sur importation de lib nécessaire
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 public static void generer_rapport(String fileName) throws JRException { // Le chemin du fichier .JRXML JasperDesign jasperDesign = JRXmlLoader.load("c:\\test1.jrxml"); JasperReport jasperReport = JasperCompileManager .compileReport(jasperDesign); Map parameters = new HashMap<String, String>(); parameters.put("titre", "Listing les "); // - Execution du rapport // creation du fichier .PDF JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource()); JasperExportManager.exportReportToPdfFile(jasperPrint, "c:\\"+fileName+".pdf"); }
ce code ca marche parfaitement
j'essaye de faire le changement necessaire pour generer un rapport pdf avec struts2
je cree une class GenererPDF.class
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 package com.test; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; import com.mysql.jdbc.Connection; import com.mysql.jdbc.Driver; public class GenererPDF { public String generer() { // - Paramètres de connexion à la base de données String url = "jdbc:mysql://localhost/basetest"; String login = "root"; String password = "root"; Connection connection = null; try { // - Connexion à la base Driver monDriver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(monDriver); connection = (Connection) DriverManager.getConnection(url, login, password); // - Chargement et compilation du rapport JasperDesign jasperDesign = JRXmlLoader.load("C://test.jrxml"); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); // - Paramètres à envoyer au rapport Map parameters = new HashMap(); parameters.put("Titre", "Titre"); // - Execution du rapport JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection); // - Création du rapport au format PDF JasperExportManager.exportReportToPdfFile(jasperPrint, "C:\\test.pdf"); } catch (JRException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } return "success"; } }
je crée un dossier report sous WebContent et je place le fichier test.jrxml sous ce dossier
mais comme vous voyer dans le code de la class GenererPDF j'essaye d’accéder au fichier test.jrxml qui est placé sous C:
le fichier struts.xml est :
la page Rapport.jsp
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 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml"/> <package name="default" extends="struts-default"> <action name="generation" method="generer" class="com.test.GenererPDF"> <result name="success">/index.jsp</result> </action> </package> </struts>
mais lors de l’exécution cette erreur est affichée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> </head> <body> <a href="generation.action">click ici pour générer un PDF</a> </body> </html>
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 There is no Action mapped for namespace / and action name generation. - [unknown location] com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186) org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:497) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
Partager