salut, je développe une petite application avec struts qui consiste a extraire des données de ma base et les enregistré dans un fichier csv . le probleme c'est que lorsque le fichier est crée il est vide il n'y a aucun enregistrement.
dans l'action :
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 ActionForward load(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    {
        IterfacagecaisseActionForm fb = (IterfacagecaisseActionForm)form;
        ArrayList listAntenne = new ArrayList();
        listAntenne = (ArrayList)request.getAttribute("listAntenne");
        String userRole = (String)request.getAttribute("userRole");
        Date date = new Date();
        Calendar dateCalendar = new GregorianCalendar();
        dateCalendar.setTimeInMillis(date.getTime());
        String jour;
        if(dateCalendar.get(5) < 10)
        {
            jour = (new StringBuilder("0")).append(dateCalendar.get(5)).toString();
        } else
        {
            jour = (new StringBuilder()).append(dateCalendar.get(5)).toString();
        }
        String mois;
        if(dateCalendar.get(2) + 1 < 10)
        {
            mois = (new StringBuilder("0")).append(dateCalendar.get(2) + 1).toString();
        } else
        {
            mois = (new StringBuilder()).append(dateCalendar.get(2) + 1).toString();
        }
        String annee = (new StringBuilder()).append(dateCalendar.get(1)).toString();
        fb.setJour(jour);
        fb.setMois(mois);
        fb.setAnnee(annee);
        fb.setUserRole(userRole);
        fb.setListAntenne(listAntenne);
        System.out.println("InterfacagecaisseActionAction : load");
        return mapping.findForward("interfacage_caisse");
    }
 
    public ActionForward generate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    {
        IterfacagecaisseActionForm fb = (IterfacagecaisseActionForm)form;
        System.out.println("InterfacagecaisseActionAction : generate");
        try
        {
            String antenne = fb.getAntenne();
            String date_generation = (new StringBuilder(String.valueOf(fb.getAnnee()))).append("-").append(fb.getMois()).append("-").append(fb.getJour()).toString();
            CsvWriter CMTracewriter = new CsvWriter(new PrintWriter(new OutputStreamWriter(new FileOutputStream("c:/CMTrace.csv"), Charset.forName("UTF-8"))), '!');
            GenerateFileManager.generate_disbursaleLoan(CMTracewriter, antenne, date_generation);
            GenerateFileManager.generate_payment(CMTracewriter, antenne, date_generation);
            GenerateFileManager.generate_adjustment(CMTracewriter, antenne, date_generation);
            GenerateFileManager.generate_fees(CMTracewriter, antenne, date_generation);
            CMTracewriter.flush();
            CMTracewriter.close();
            response.setContentType("text/csv");
            response.addHeader("Content-Disposition", "filename=\"CMTrace.csv\"");
            try
            {
                File uFile = new File("c:/CMTrace.csv");
                int fSize = (int)uFile.length();
                FileInputStream fis = new FileInputStream(uFile);
                PrintWriter pw = response.getWriter();
                for(int c = -1; (c = fis.read()) != -1;)
                {
                    pw.print((char)c);
                }
 
                fis.close();
                pw.flush();
                pw = null;
            }
            catch(Exception exception) { }
        }
        catch(IOException ex)
        {
            System.out.println((new StringBuilder("probleme envoi fichier, erreur=")).append(ex.getMessage()).toString());
        }
        return mapping.findForward("interfacage_caisse");
    }
et dans la classe qui génère le resultat de mes requetes :
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
 public static void generate_disbursaleLoan(CsvWriter CMTracewriter, String antenne, String date_generation)
        throws IOException
    {
        JDBCAdapter adapter = new JDBCAdapter();
        try
        {
            System.out.println("generate_disbursaleLoan");
            adapter.getConnection();
            for(ResultSet rs_loanAccount = adapter.executeQuery((new StringBuilder("SELECT * FROM loan_trxn_detail l,account_trxn a,account ac,office o where ac.acc" +
"ount_id=a.account_id and l.ACCOUNT_TRXN_ID=a.ACCOUNT_TRXN_ID and l.PRINCIPAL_AMO" +
"UNT > 0 and ac.OFFICE_ID=o.OFFICE_ID and o.DISPLAY_NAME='"
)).append(antenne).append("' and ac.CREATED_DATE='").append(date_generation).append("'").toString()); rs_loanAccount.next(); CMTracewriter.endRecord())
            {
                System.out.println("rs_loanAccount");
                CMTracewriter.write(rs_loanAccount.getString("ACCOUNT_ID"));
                CMTracewriter.write(rs_loanAccount.getString("GLOBAL_ACCOUNT_NUM"));
                CMTracewriter.write(rs_loanAccount.getString("ACTION_DATE"));
                CMTracewriter.write("");
                CMTracewriter.write("");
                CMTracewriter.write("1");
                CMTracewriter.write("");
                CMTracewriter.write(rs_loanAccount.getString("PRINCIPAL_AMOUNT"));
                CMTracewriter.write("");
                CMTracewriter.write("0");
                CMTracewriter.write(rs_loanAccount.getString("ACTION_DATE"));
                CMTracewriter.write("");
                CMTracewriter.write("");
                for(ResultSet rs_customer = adapter.executeQuery((new StringBuilder("SELECT DISPLAY_NAME FROM CUSTOMER,ACCOUNT WHERE CUSTOMER.CUSTOMER_ID=ACCOUNT.CUS" +
"TOMER_ID AND ACCOUNT_ID='"
)).append(rs_loanAccount.getString("ACCOUNT_ID")).append("'").toString()); rs_customer.next(); CMTracewriter.write(rs_customer.getString("DISPLAY_NAME"))) { }
                CMTracewriter.write("");
                CMTracewriter.write("0");
                CMTracewriter.write("");
                CMTracewriter.write("0");
            }
 
            CMTracewriter.flush();
            System.out.println("generate_disbursaleLoan complete...");
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
merci d'avance