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

Java EE Discussion :

Erreur HTTP 500


Sujet :

Java EE

  1. #1
    Membre éclairé Avatar de sofiane_bfm007
    Profil pro
    Consultant Décisionnel
    Inscrit en
    Mai 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Décisionnel

    Informations forums :
    Inscription : Mai 2008
    Messages : 261
    Par défaut Erreur HTTP 500
    Bonjour,
    je suis débutant dans le developpement JEE5, voila, j'ai utilisé netbeans 6.1 et glassfish 3 aussi EJB3 avec JDK 1.6.

    Mon serveur est bien démarrer aussi j'ai bien configurer ma base dans glassfish et connecter

    c'est une application de gestion de commandes que j'ai pris sur internet pour m'entrainer et voici les différents codes :
    persistence.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
      <persistence-unit name="PriseCommandes-ejbPU" transaction-type="JTA">
        <provider>oracle.toplink.essentials.PersistenceProvider</provider>
        <jta-data-source>jdbc/Commande</jta-data-source>
        <properties>
          <property name="toplink.ddl-generation" value="drop-and-create-tables"/>
        </properties>
      </persistence-unit>
    </persistence>
    mes servelets :

    Article.java

    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package org.magasin;
     
    import java.io.Serializable;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
     
    /**
     *
     * @author sofiane
     */
    @Entity
    public class Article implements Serializable {
     
     
        private static final long serialVersionUID = 1L;
        private Integer id;
        String description;
     
        public void add(Article article) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
     
        public void setDescription(String article) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name="ID_ARTICLE")
        public Integer getId() {
            return id;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.hashCode() : 0);
            return hash;
        }
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Article)) {
                return false;
            }
            Article other = (Article) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "org.magasin.Article[id=" + id + "]";
        }
     
    }
    Commande.java

    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
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package org.magasin;
     
    import java.io.Serializable;
    import java.util.Collection;
    import java.util.Date;
    import javax.persistence.CascadeType;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.OneToMany;
    import javax.persistence.Temporal;
     
    /**
     *
     * @author sofiane
     */
    @Entity(name="COMMANDE_CLIENT")
    public class Commande implements Serializable {
        private static final long serialVersionUID = 1L;
     
     
     
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
     
        private
     
        String client;
        @Temporal(value = javax.persistence.TemporalType.DATE)
        private Date dateLivraison;
     
     
        @OneToMany(cascade = CascadeType.ALL)
        private
     
        Collection<Article> articles;
     
     
        public void setId(Long id) {
            this.id = id;
        }
     
        public Long getId() {
            return id;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.hashCode() : 0);
            return hash;
        }
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Commande)) {
                return false;
            }
            Commande other = (Commande) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "org.magasin.Commande[id=" + id + "]";
        }
     
        public String getClient() {
            return client;
        }
     
        public void setClient(String client) {
            this.client = client;
        }
     
        public Date getDateLivraison() {
            return dateLivraison;
        }
     
        public void setDateLivraison(Date dateLivraison) {
            this.dateLivraison = dateLivraison;
        }
     
        public Collection<Article> getArticles() {
            return articles;
        }
     
        public void setArticles(Collection<Article> articles) {
            this.articles = articles;
        }
     
    }
    GestionCommandesBean.java

    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package org.magasin;
     
    import java.util.Collection;
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
     
    /**
     *
     * @author sofiane
     */
    @Stateless
    public class GestionCommandesBean implements GestionCommandesLocal {
     
       @PersistenceContext()
       EntityManager em;
     
     
        public void creerCommande(Commande commande) {
           em.persist(commande);
        }
     
        public Collection<Commande> getCommandes() {
            return em.createQuery("SELECT o from COMMANDE_CLIENT o").getResultList();
     
     
        }
     
        public void businessMethod(String creerCommandes) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
     
     
        // Add business logic below. (Right-click in editor and choose
        // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
     
    }
    GestionCommandesLocal.java

    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package org.magasin;
     
    import java.util.Collection;
    import javax.ejb.Local;
     
    /**
     *
     * @author sofiane
     */
    @Local
    public interface GestionCommandesLocal {
        void creerCommande(Commande commande);
        Collection<Commande> getCommandes();
     
        void businessMethod(String creerCommandes);
     
     
    }
    faces-config.xml

    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
    <?xml version='1.0' encoding='UTF-8'?>
     
    <!-- =========== FULL CONFIGURATION FILE ================================== -->
     
    <faces-config version="1.2" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
        <managed-bean>
            <managed-bean-name>PriseCommande</managed-bean-name>
            <managed-bean-class>org.jsfmagasin.PriseCommande</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
        <navigation-rule>
            <description>
     
            </description>
            <from-view-id>/welcomeJSF.jsp</from-view-id>
            <navigation-case>
                <from-outcome>commande_passee</from-outcome>
                <to-view-id>/listeCommandes.jsp</to-view-id>
            </navigation-case>
        </navigation-rule>
     
    </faces-config>
    web.xml

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <context-param>
            <param-name>com.sun.faces.verifyObjects</param-name>
            <param-value>false</param-value>
        </context-param>
        <context-param>
            <param-name>com.sun.faces.validateXml</param-name>
            <param-value>true</param-value>
        </context-param>
        <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>client</param-value>
        </context-param>
        <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>/faces/*</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
            </welcome-file-list>
        </web-app>
    listeCommandes.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
    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
    <%-- 
        Document   : listeCommandes
        Created on : 14 oct. 2009, 00:12:19
        Author     : sofiane
    --%>
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
     
       <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
       <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
     
          <f:view>
    <h:form>
     <h1><h:outputText value="List"/></h1>
     <h:dataTable value="#{PriseCommande.listeCommandes}" var="item">
    <h:column>
     <f:facet name="header">
     <h:outputText value="Client"/>
     </f:facet>
     <h:outputText value=" #{item.client}"/>
    </h:column>
    <h:column>
     <f:facet name="header">
     <h:outputText value="DateLivraison"/>
     </f:facet>
     <h:outputText value="#{item.dateLivraison}">
     <f:convertDateTime type="DATE" pattern="MM/dd/yyyy" />
    </h:outputText>
    </h:column>
    </h:dataTable>
     </h:form>
    </f:view>
     
     
        </body>
    </html>
    welcomeJSF.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
    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
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
     
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <%--
        This file is an entry point for JavaServer Faces application.
    --%>
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <f:view>
                <h:form>
                    <h:panelGrid columns="3" border="0">
                        <h:outputText>Client</h:outputText>
                        <h:inputText id="client" value="#{PriseCommande.client}"/>
                        <h:message for="client"/>
     
                         <h:outputText>Date Livraison jj/mm/aaaa:</h:outputText>
                        <h:inputText id="dateLivraison" value="#{PriseCommande.dateLivraison}">
                        <f:convertDateTime pattern="dd/MM/yyyy"/>
                        </h:inputText>
                        <h:message for="dateLivraison"/>
     
                         <h:outputText>Article</h:outputText>
                        <h:inputText id="article" value="#{PriseCommande.article}"/>
                        <h:message for="article"/>
                     </h:panelGrid>
                     <h:commandButton id="submit" value="Save" action="#{PriseCommande.sauve}"/>
                </h:form>
            </f:view>
        </body>
    </html>
    PriseCommande.java

    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package org.jsfmagasin;
     
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Date;
    import javax.ejb.EJB;
    import org.magasin.Article;
    import org.magasin.Commande;
    import org.magasin.GestionCommandesLocal;
     
     
     
     
     
     
    /**
     *
     * @author sofiane
     */
     
    public class PriseCommande {
     
         @EJB
         GestionCommandesLocal processusCommande;
         private String Client;
        private Date dateLivraison;
        private String article;
     
     
        public String sauve(){
     
            Commande commande = new Commande();
            commande.setClient(getClient());
            commande.setDateLivraison(getDateLivraison());
     
            Article article = new Article();
            article.setDescription(getArticle());
     
            Collection<Article> articles = new ArrayList();
            articles.add(article);
            commande.setArticles(articles);
     
            processusCommande.creerCommande(commande);
            return "commande_passee";
     
        }
     
           public Collection<PriseCommande> getListeCommandes(){
     
            Collection <PriseCommande> commandes = new ArrayList();
            for (Commande commande : processusCommande.getCommandes()){
                PriseCommande priseCommande = new PriseCommande();
                priseCommande.setClient(commande.getClient());
                priseCommande.setDateLivraison(commande.getDateLivraison());
                commandes.add(priseCommande);
            }
            return commandes;
     
        }
        /** Creates a new instance of PriseCommande */
        public PriseCommande() {
        }
     
        public String getClient() {
            return Client;
        }
     
        public void setClient(String Client) {
            this.Client = Client;
        }
     
        public Date getDateLivraison() {
            return dateLivraison;
        }
     
        public void setDateLivraison(Date dateLivraison) {
            this.dateLivraison = dateLivraison;
        }
     
        public String getArticle() {
            return article;
        }
     
        public void setArticle(String article) {
            this.article = article;
        }
     
    }
    Donc après un RUN du projet tout va bien pour le moment, j'ai la pages d'accueil ou je vais saisir mes 3 champs et après validation voici l'erreur qui j'ai


    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
     
    État HTTP 500 -
     
    type Rapport d'exception
     
    Message
     
    DescriptionLe serveur a rencontré une erreur interne () qui l'a empêché de remplir cette requête.
     
    Exception
     
    javax.servlet.ServletException: #{PriseCommande.sauve}: java.lang.UnsupportedOperationException: Not yet implemented
     
    Cause racine
     
    javax.faces.FacesException: #{PriseCommande.sauve}: java.lang.UnsupportedOperationException: Not yet implemented
     
    Cause racine
     
    javax.faces.el.EvaluationException: java.lang.UnsupportedOperationException: Not yet implemented
     
    Cause racine
     
    java.lang.UnsupportedOperationException: Not yet implemented
     
    note Les suivis de pile complets de l'exception et de ses causes principales sont disponibles dans les journaux Sun Java System Application Server 9.1_02.
    Sun Java System Application Server 9.1_02

    je vous remercie d'avance pour votre aides

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ça n'a rien d'étonnant, ta méthode setDescription de Article renvoie l'exception...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé Avatar de sofiane_bfm007
    Profil pro
    Consultant Décisionnel
    Inscrit en
    Mai 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Décisionnel

    Informations forums :
    Inscription : Mai 2008
    Messages : 261
    Par défaut
    merci, c vrai c la methode setDesciption qui cause le problème,

    Pouvez vous me dire SVP comment je vais procéder car je suis débutant en java, merci

  4. #4
    Membre éclairé Avatar de sofiane_bfm007
    Profil pro
    Consultant Décisionnel
    Inscrit en
    Mai 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Décisionnel

    Informations forums :
    Inscription : Mai 2008
    Messages : 261
    Par défaut
    voila
    j'ai regler le problème en modifiant le code de la classe Article
    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    package org.magasin;
    
    import java.io.Serializable;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    
    /**
     *
     * @author sofiane
     */
    @Entity
    public class Article implements Serializable {
        
        
        private static final long serialVersionUID = 1L;
        private Integer id;
        private String description;
    
         public String getDescription() {
            return description;
        }
    
        public void setDescription(String description) {
            this.description = description;
        }
    
        public  Article(){
        }
    
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name="ID_ARTICLE")
        public Integer getId() {
            return id;
        }
        
        public void setId(Integer id) {
            this.id = id;
        }
        
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.hashCode() : 0);
            return hash;
        }
    
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Article)) {
                return false;
            }
            Article other = (Article) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
    
        @Override
        public String toString() {
            return "org.magasin.Article[id=" + id + "]";
        }
    
       
    }
    Merci

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

Discussions similaires

  1. [Visual Web] erreur HTTP 500
    Par cpotiron dans le forum NetBeans
    Réponses: 4
    Dernier message: 13/07/2007, 13h14
  2. Erreur HTTP 500
    Par nicolasferraris dans le forum ASP
    Réponses: 6
    Dernier message: 09/03/2007, 09h45
  3. erreur http 500 sur un servlet
    Par 2tsiris dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 04/05/2006, 09h08
  4. Erreur HTTP 500 Tomcat
    Par kobe dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 19/01/2006, 12h16
  5. [Tomcat] Erreur HTTP 500
    Par gandalf_le_blanc dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 23/08/2004, 15h26

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