Bonjour.
Je ne sais pas si je poste dans le bon forum mais j'ai besoin d'aide
Actuellement, je travaille avec jsf et je suis charge du developpement des pages web et un autre collegue lui s'occupe du développement des états.
Jusque la tout va bien.
Mais c'est dans l'intégration des etats que ca crame. Au niveau du poste du collegue tout va bien, les etats s'affiche. Mais lorsque j'essaie d'integrer les etats dans mon appli, l'integration est bien, mais lorsque je clique sur le bouton editer rien n'est fait; en deboguant je vois que tout se deroule bien mais rien ne s'affiche, aucune erreur et aucun n'affiche.

Quelqu'un pourrait m'aider a resoudre ce probleme.

Voici la classe que nous utilisons pour afficher nos etats

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
 
// Source File Name:   JasperCallFactory.java
 
package jasper.factory;
 
import java.io.File;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
 
public class JasperCallFactory
{
 
    public JasperCallFactory(Connection jdbcConnection1, String format)
    {
        this.format = null;
        parameters = null;
        jdbcConnection = jdbcConnection1;
        this.format = format;
    }
 
    public void showInBrowser(File fichier, HttpServletResponse out)
    {
        try
        {
            ServletOutputStream out2 = out.getOutputStream();
            net.sf.jasperreports.engine.design.JasperDesign jasperDesign = JRXmlLoader.load(fichier);
            net.sf.jasperreports.engine.JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
            net.sf.jasperreports.engine.JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, jdbcConnection);
            if(format == null)
            {
                out.setContentType("application/pdf");
                out.setHeader("Content-disposition", "filename=etat.pdf");
                JRPdfExporter exporter = new JRPdfExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
                exporter.exportReport();
            } else
            if(format.equalsIgnoreCase(PDF_FORMAT))
            {
                out.setContentType("application/pdf");
                out.setHeader("Content-disposition", "filename=etat.pdf");
                JRPdfExporter exporter = new JRPdfExporter();
                exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
                exporter.exportReport();
            } else
            if(format.equalsIgnoreCase(HTML_FORMAT))
            {
                out.setContentType("text/html");
                out.setHeader("Content-disposition", "filename=etats.html");
                JRHtmlExporter exporter = new JRHtmlExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
                exporter.exportReport();
            } else
            if(format.equalsIgnoreCase(RTF_FORMAT))
            {
                out.setContentType("application/ms-word");
                out.setHeader("Content-disposition", "filename=etat.rtf");
                JRRtfExporter exporter = new JRRtfExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
                exporter.exportReport();
            } else
            if(format.equalsIgnoreCase(EXCEL_FORMAT))
            {
                out.setContentType("application/ms-excel");
                out.setHeader("Content-disposition", "filename=etat.xls");
                JRXlsExporter exporter = new JRXlsExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
                exporter.exportReport();
            }
            out2.flush();
            out2.close();
        }
        catch(Exception ex)
        {
            String connectMsg = (new StringBuilder("Ne peut creer le stream du report")).append(ex.getMessage()).append(" ").append(ex.getLocalizedMessage()).toString();
            System.out.println(connectMsg);
        }
    }
 
    public Connection getJdbcConnection()
    {
        return jdbcConnection;
    }
 
    public void setJdbcConnection(Connection jdbcConnection)
    {
        this.jdbcConnection = jdbcConnection;
    }
 
    public String getFormat()
    {
        return format;
    }
 
    public void setFormat(String format)
    {
        this.format = format;
    }
 
    public Map getParameters()
    {
        return parameters;
    }
 
    public void ajouterParametre(String nom, Object valeur)
    {
        if(parameters == null)
            parameters = new HashMap();
        parameters.put(nom, valeur);
    }
 
    public void setParameters(Map parameters)
    {
        this.parameters = parameters;
    }
 
    private Connection jdbcConnection;
    private String format;
    private Map parameters;
    public static String PDF_FORMAT = "pdf";
    public static String HTML_FORMAT = "html";
    public static String RTF_FORMAT = "html";
    public static String EXCEL_FORMAT = "html";
 
}

Un exemple d'appel d'un etat

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
    public String GenererEtat() throws FileNotFoundException, 
                                       ServiceLayerException {
 
            // - Paramètres de connexion à la base de données
                   String url = "jdbc:mysql://localhost/ciospbBD";
                   String login = "root";
                   String password = "";
                   Connection connection = null;
                  File fichier =null;
 
                   try {
            // Recherche des choix ds la bd
 
                     messageError.setValue("");
                     if (!valideAnnee()) 
                     return null;                      
 
 
                     // - Connexion à la base
                       Driver monDriver = new com.mysql.jdbc.Driver();
                       DriverManager.registerDriver(monDriver);
                       connection = DriverManager.getConnection(url, login, password);
                       JasperCallFactory jasper=new JasperCallFactory(connection,JasperCallFactory.PDF_FORMAT);
 
                       HttpServletResponse response=(HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
                       ServletContext context=(ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext();
 
                        String etatChoix = (String)comboChoix.getLocalValue();
 
                        if ((etatChoix.trim().compareTo("DBE")==0)){
                            fichier=new File(etatDBE(context,jasper)) ;
                        }else if ((etatChoix.trim().compareTo("DBES")==0)){
                            fichier=new File(etatDBESisucces(context,jasper)) ;
                        } else if ((etatChoix.trim().compareTo("RNDS")==0)){
                            fichier=new File(etatRNDS(context,jasper)) ;
                        } else if ((etatChoix.trim().compareTo("RNDSS")==0)){
                            fichier=new File(etatRNDSSisucces(context,jasper)) ;
                        }else if ((etatChoix.trim().compareTo("DEA")==0)){
                            fichier=new File(etatDEA(context,jasper)) ;
                        }
 
                             //    File fichier=new File(typeEtat(context,jasper)) ;
                             jasper.showInBrowser(fichier,response);
                             try {
                                  connection.close();
                                 } catch (SQLException e) {
 
                                    e.printStackTrace();
                                 }
 
                     }  catch (SQLException e) {
 
                           e.printStackTrace();
                       } catch (DataAccessLayerException e) {
                    // TODO
                } finally {
 
                       }
 
          return "";
    }
Je vous informe que sur le poste du collegue tout marche.

Pour information, j'utilise ces technologie :
ajax4JSF
Myfaces
Hibernate
ireport 1.1