IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

Exécution d'un JasperReport à travers un code java inaboutie


Sujet :

Documents Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 13
    Points
    13
    Par défaut Exécution d'un JasperReport à travers un code java inaboutie
    Bonjour,
    Je suis entrain de developper une application de gestion des factures dans laquelle je veut mettre un bouton qui me permet d'imprimer une facture. Alors j'ai fait recourt au Jaspersoft iReport Designer 5.6.0 pour concevoir ma facture, puis je voulais l'exécuter à travers mon application java. J'ai téléchargé les librairies nécessaires pour le jasper et j'ai ajouté tous ceux situées sous les dossiers /lib et /dist et voilà mon bout de code java pour faire l'appel de mon fichier ireport :
    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
    package projet_youtube_produit;
     
    import BDD.Parameter;
    import BDD.db_connection;
    import java.sql.*;
    import javax.swing.JOptionPane;
    import net.sf.jasperreports.engine.JasperCompileManager;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.view.JasperViewer;
    import net.sf.jasperreports.engine.*;
     
     
    public class Facture extends javax.swing.JFrame {
     
     
        ResultSet rs;
        db_connection db;
        public Facture() {
            //connexion à la base des données
            db = new db_connection(new Parameter().HOST_DB, new Parameter().USERNAME_DB, new Parameter().PASSWORD_DB, new Parameter().IPHOST, new 
           Parameter().PORT);
     
            initComponents();
        }
     
     
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
                try{
                    String rapport="C:\\Users\\DEVPLUS\\Downloads\\Compressed\\application_gestion_stock\\projet__produit_devplus\\src\\first_report.jrxml";
                    JasperReport jr = JasperCompileManager.compileReport(rapport);
                    JasperPrint jp = JasperFillManager.fillReport(jr,null,db);
                    JasperViewer.viewReport(jp);
     
                }catch(Exception e){
                   JOptionPane.showMessageDialog(null,e);
                }
        }
    .
    Dans ce code la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JasperPrint jp = JasperFillManager.fillReport(jr,null,db);
    et soulignée suite à l'erreur no suitable method found for fillReport(JasperReport,<null>,db_connection)
    J'utilise netbeans IDE 8.2 comme outil de programmation et wampserver32 pour la base de donnée.
    Je ne vois pas ou est le problème ??

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le problème est que le troisième paramètre de la méthode JasperFillManager.fillReport est un java.sql.Connection ou un net.sf.jasperreports.engine.JRDataSource, et que BDD.db_connection ne correspond probablement ni à l'un ni à l'autre !
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Même lorsque j'ai essayé avec une autre manière comme le montre le code suivant où je déclare une variable conn de type connection j'arrive pas à exécuter mon rapport malgrès qu'il y a aucune erreur indiquée!!
    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
    import java.sql.Connection;
    import java.sql.DriverManager;
    import net.sf.jasperreports.engine.JasperCompileManager;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.view.JasperViewer;
     
     
    public class Facture1 extends javax.swing.JFrame {
     
     
        public Facture1() {
            initComponents();
        }                     
     
        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     
            try{
                Class.forName("com.sql.jdbc.Driver");          
                Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/gestion_produit?","root","");
                System.out.println("connection établie ");
                String reportPath = "C:\\Users\\DEVPLUS\\Downloads\\Compressed\\application_gestion_stock\\projet__produit_devplus\\src\\first_report.jrxml";
                JasperReport jr = JasperCompileManager.compileReport(reportPath);
                    JasperPrint jp = JasperFillManager.fillReport(jr,null,conn);
                    JasperViewer.viewReport(jp);
     
            }catch(Exception ex){
                 System.out.println(ex.getMessage());
            }
        }
    l'exécution se bloque au niveau de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/gestion_produit?","root","");
    , le message "connection établie" ne s'affiche pas .
    Notez que le nom de ma base de données est bien"gestion_produit".

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Que veux-tu dire par "se bloque" ? Le code semble attendre quelque chose sans jamais se terminer ? Ou il y a une exception ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Effectivement, le code semble attendre quelque chose sans jamais terminer,pas d'exceptions ni rien.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Essaye avec d'abord avec :

    jdbc:mysql://127.0.0.1:3306/gestion_produit

    Puis avec :
    jdbc:mysql://127.0.0.1:3306/gestion_produit?useSSL=false

    Si ça bloque toujours, essaye pour voir ce qu'il se passe avec :
    jdbc:mysql://127.0.0.1:3306/gestion_produit?autoReconnect=true&connectTimeout=30000&socketTimeout=30000&useSSL=false

    Il faudra attendre au moins 30 secondes.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Malheureusement, toujours pas d'avancement. J'ai essayé même en remplaçant 127.0.0.1 par localhost et rien ne change. Si on retourne au premier essai, où vous m'avez dit que db n'est pas de type connection ,comment puis-je resoudre cela sachant que db est de type db_connection . db_connection est une classe du package BDD dans laquelle je définie toutes mes requêtes sur la base de donnée .Pour établir ma connexion avec la base de donnée j'ai le code suivant:
    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
    package BDD;
     
    import java.net.Socket;
     
    import java.sql.*;
     
     
    public class db_connection {
     
        Connection connection;
        Statement statement;
        String SQL;
     
        String url;
        String username;
        String password;
        Socket client;
        int Port;
        String Host;
     
     
      public db_connection(String url, String username, String password, String Host, int Port) {
     
            this.url = url;
            this.username = username;
            this.password = password;
            this.Host = Host;     
            this.Port = Port;
     
        }
     
     
     public Connection connexionDatabase() {
     
     
      try {
                Class.forName("com.mysql.jdbc.Driver");
     
                connection = DriverManager.getConnection(url, username, password);
            } catch (Exception e) 
               {System.err.println(e);//
            }
            return connection;
        }
    .
    Puis il suffit que je déclare les deux variables rs de type resultset et db de type db_connection et appeler mon constructeur db_connection() que je l'affecte à la variable db, et voilà ma connexion est établie et mes requêtes sont exécutées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     ResultSet rs;
        db_connection db;
        public Facture() {
            //connexion à la base des données
            db = new db_connection(new Parameter().HOST_DB, new Parameter().USERNAME_DB, new Parameter().PASSWORD_DB, new Parameter().IPHOST, new Parameter().PORT);
     
            initComponents();
        }
    Si vous m'aidez à me débrouiller avec ce code et m'expliquez comment puis-je définir une variable de type connexion suite au données précédant pour voir si ça marche , je serais reconnaissante, et merci.

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par fewaa Voir le message
    Malheureusement, toujours pas d'avancement
    Est-ce que tu peux te connecter avec un outil mysql ? En console par exemple.
    Et qu'est-ce qu'il se passe avec l'essai avec timeout. Cela doit provoquer au moins une exception. Cela ne peut pas se bloquer indéfiniment.

    Citation Envoyé par fewaa Voir le message
    Si on retourne au premier essai, où vous m'avez dit que db n'est pas de type connection ,comment puis-je resoudre cela
    En ajoutan un accesseur dans db_connection, pour récupérer la valeur de db depuis la méthode de Facture. Ou en mettant une méthode print dans db_connection, dans laquelle tu déplaces tout le code de la méthode (tu laisses la définition du rapport en paramètre - d'ailleurs à ce sujet, tu ne devrais pas mettre le chemin du fichier en dur, mais récupérer un inputstream par Facture.class.getResourceAsStream()).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Honnêtement je ne sais pas comment y faire exactement, d'où j'arrive pas à tester si ça marche avec la console, mais autrement, même avec l'essai avec timeout ça se bloque infiniment sans provoquer aucune exception malgré que j'attendais plus qu'une minute.
    Bon j'ai essayé avec l'accesseur et ça marche sauf que les warning suivant sont provoqués :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    log4j:WARN No appenders could be found for logger (net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).
    log4j:WARN Please initialize the log4j system properly.
    et un message qui m'informe que le document ne contient aucune page est affiché, tandis que j'ai bien créé mon fichier avec JasperSoft iReport Designer le voilà ci-joint.

    Nom : imprime_ecran.png
Affichages : 1801
Taille : 176,0 Ko

    Donc aucune page est affichée, document vide voir .

    Nom : imp_ecr2.png
Affichages : 1585
Taille : 328,0 Ko

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par fewaa Voir le message
    Bon j'ai essayé avec l'accesseur et ça marche sauf que les warning suivant sont provoqués :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    log4j:WARN No appenders could be found for logger (net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).
    log4j:WARN Please initialize the log4j system properly.
    Ça c'est juste un message qui te prévient que tu n'as pas configuré log4j et donc tu n'auras pas les logs du composant qui l'utilise (à priori Jasper).

    Citation Envoyé par fewaa Voir le message
    et un message qui m'informe que le document ne contient aucune page est affiché, tandis que j'ai bien créé mon fichier avec JasperSoft iReport Designer le voilà ci-joint.
    Je ne connais pas le fonctionnement de JasperReport, donc je ne peux pas te dire pourquoi.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Concernant les warning, j'ai trouvé dans un vidéo que c'est pas gênant, on peux les dépassés. Et concernant le document vide, il y a un paramètre dans les propriétés du fichier .jrxml dans jasper qui est "When No Data" qui a la valeur "No Pages" je l'est changé en "When No Data"="Blank Page". Alors lors de l’exécution, le document apparait cette fois avec une page vide. Bon la solution était très banale juste manque d'attention , il faudrait que je vérifie ma connexion, du coût, j'ai trouvé que la variable conn renferme une connexion fermée d'où il me fallait ouvrir ma connexion. C'est si simple comme ça .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Connection getConnection(){
         connexionDatabase(); // fonction d'ouverture de connexion
         return connection;
     }
    Merci énormément pour votre aide.

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par fewaa Voir le message
    d'où il me fallait ouvrir ma connexion.
    Il faudrait surtout penser à la fermer quand tu ne l'utilises plus, ou, mieux, faire ou utiliser un pool.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécuter des commandes cmd avec du code Java
    Par hakim008 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 13/03/2016, 10h48
  2. Exécution script shell à distance à travers une classe Java
    Par midoom dans le forum Général Java
    Réponses: 1
    Dernier message: 27/07/2012, 04h17
  3. Exécution d'un script à partir de code java
    Par ridecat dans le forum Langage
    Réponses: 4
    Dernier message: 02/11/2008, 19h09
  4. Exécution d'un script ant avec un code JAVA
    Par nibor2luxe dans le forum ANT
    Réponses: 1
    Dernier message: 23/01/2008, 13h32
  5. Exécuter du code Java à partir d'un rapport
    Par medbass dans le forum BIRT
    Réponses: 6
    Dernier message: 16/08/2006, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo