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

Services Web Java Discussion :

[AXIS] Exemple concret de cas d'utilisation de Webservice avec Axis


Sujet :

Services Web Java

  1. #1
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 011
    Points : 1 375
    Points
    1 375
    Par défaut [AXIS] Exemple concret de cas d'utilisation de Webservice avec Axis
    Bonjour à tous,

    Je veux apprendre à développer en utilisant le Web Service Axis et je voudrais avoir un exemple concret de ce que je pourrais faire avec (assez simple vu que c'est pour jouer un peu)

    Merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Le plug-in WTP d'Eclipse intègre Axis 1.4 et il est trés facile à utiliser, voilà un lien qui te montre comment développer un web service de a à z(un peux ancien, car il y a des parties qui sont complètement automatisés mnt).

    Dans les cours et tutoriels pour apprendre le langage Java : http://java.developpez.com/cours/


    Il y a un autre tutoriel Java qui est intéressant et qui te montre comment crée un client pour consommer ton web service en axis

    http://karamimed.developpez.com/j2ee/tutoriels/axis/



    Enjoy

  3. #3
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Bonjour,
    je teste le tutoriel Java http://java.developpez.com/cours/
    pour déployer un web service dans Axis.

    Sauf que je bloque à la partie " 26.1.6. Le déploiement du service dans Axis "
    L'auteur présente une solution passant par un .bat qui semble adaptée à windows...
    Sauf que je suis sous ubuntu.
    Je suis pas sur que l'erreur vienne de là, il n'empêche que je n'arrive pas à passer cette étape.

    En fait mon gros problème, je ne sais pas comment compiler un web service pour qu'il soit prêt à être déployé dans axis.
    J'ai tenté de simplement créer un fichier .jws à partir d'un .java et de le placer dans le dossier axis.
    Sauf que j'ai des dépendances (import) dans ma classe et que là, ben je ne sais pas ou placer mes .jar...
    En gros dans mon projet java, j'ai des dépendances et de l'héritage.
    Sous quelle forme (.war peut-être) je peux compiler mon projet?

    Si vous aviez un lien vers un tuto adapté à mon pb...

    Merci d'avance.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  4. #4
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Bon je continue,
    Je teste le tuto suivant :
    karamimed.ftp-developpez.com/j2ee/tutoriels/axis/wsaxis.pdf

    Sauf que, problème.
    J'en suis page 12, partie IV-C
    je tape la ligne de commande : java org.apache.axis.client.AdminClient deploy.wsdd
    Et j'ai l'erreur suivante :

    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
    log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).
    log4j:WARN Please initialize the log4j system properly.
    Processing file deploy.wsdd
    Exception: AxisFault
     faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
     faultSubcode:
     faultString: java.net.ConnectException: Connection refused
     faultActor:
     faultNode:
     faultDetail:
            {http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection refused
            at java.net.PlainSocketImpl.socketConnect(Native Method)
            at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
            at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
            at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
            at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:381)
            at java.net.Socket.connect(Socket.java:537)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:616)
            at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
            at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:120)
            at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
            at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
            at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
            at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
            at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
            at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
            at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
            at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
            at org.apache.axis.client.Call.invoke(Call.java:2767)
            at org.apache.axis.client.Call.invoke(Call.java:1792)
            at org.apache.axis.client.AdminClient.process(AdminClient.java:439)
            at org.apache.axis.client.AdminClient.process(AdminClient.java:404)
            at org.apache.axis.client.AdminClient.process(AdminClient.java:410)
            at org.apache.axis.client.AdminClient.process(AdminClient.java:320)
            at org.apache.axis.client.AdminClient.main(AdminClient.java:463)
     
            {http://xml.apache.org/axis/}hostname:natoine-laptop
    Si quelqu'un y voit quelque chose.
    Merci d'avance.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  5. #5
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut
    Bonjour,

    J'ai voulu te répondre hier, mais plus moyen d'accéder au forum.

    Voici le message que j'avais tapé :

    Bonjour,

    Cet article de la FAQ à propos de la modification du CLASSPATH pourra peut-être te permettre d'adapter le script à Linux.

    Sinon, à propos du déploiement de services web avec Axis, si tu souhaites conserver une approche code-first, je te conseilles d'utiliser un descripteur de déploiement (fichier .wsdd) comme présenté sur le guide utilisateur d'Axis ou encore sur ce tutorial.

    Enfin, il est également possible (voire préférable) d'adopter une approche contract-first pour le déploiement de services web (ie rédiger le contrat WSDL du service puis utiliser un outil de génération automatique du squelette du code), ce que tu peux également trouver sur le guide utilisateur d'Axis.

    Pour ton second problème, es-tu sûr d'avoir un serveur d'applications qui tourne sur le port par défaut (à savoir 8080) ?
    Si le port de ton serveur d'applications est différent, tu peux utiliser l'option -p pour le spécifier.

  6. #6
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Merci Arnaud.
    Je viens juste de poster la solution à mon problème dans un autre topic.
    http://www.developpez.net/forums/d23...fused-connect/

    L'erreur venait bien de la spécification du port.

    Pour le reste de ton post ça va m'aider.
    Donc à toi.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  7. #7
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Hum et sinon, j'ai fait un ensemble de classes me permettant d'interfacer (gérer toutes les requêtes) une base de donnée (on a notre modèle bien précis, pas une gestion de bdd à la hibernate).
    Et je me retrouve avec de l'héritage.

    Je voudrai transformer ces classes java en différents WebServices.
    L'idée est que plusieurs applications puissent taper dans la même base à distance.

    Du coup la suite de ma question serait de savoir comment à partir d'un projet java créer un ensemble de web services?

    Si quelqu'un peut m'éclairer.
    Merci d'avance.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  8. #8
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut
    Ecrire un descripteur de déploiement (fichier .wsdd) pour chaque classe que tu souhaites exposer en tant que service web ne convient pas ?

  9. #9
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Heu je n'ai pas encore essayé.
    Mais l'idée serait, vu que j'ai un ensemble de classes pour une même appli, de pouvoir regrouper l'ensemble des .class dans un même dossier.

    Bon je vais essayer.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  10. #10
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut
    Chaque fichier .class devra être placé dans une arborescence de répertoires du nom du package de la classe correspondante, le dossier axis\WEB-INF\classes étant la racine de cette arborescence.

  11. #11
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Le déploiement se passe bien mais par contre, sur :
    http://localhost:18080/axis/servlet/AxisServlet

    Je me retrouve avec rien de listé.
    Et si je vais à l'adresse de l'un de mes Web Services :
    http://localhost:18080/axis/services/interfacesBDD

    Je n'ai rien.
    Pire, si je tente d'appeler l'une de mes méthodes :
    http://localhost:18080/axis/services...od=isConnected

    J'ai l'erreur suivante :
    AXIS error

    Sorry, something seems to have gone wrong... here are the details:

    Exception - java.lang.NoClassDefFoundError: InterfaceBDD (wrong name: intermed/questionnaire/interfacesBDD/InterfaceBDD)
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  12. #12
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut
    Au contraire, il y a un problème dans le déploiement...
    Es-tu sûr que pour chaque service nom.du.package.NomDuService, le fichier NomDuService.class compilé correspondant se trouve bien dans le répertoire axis\WEB-INF\classes\nom\du\package\NomDuService.class ?

    Si le problème n'est pas là, je ne vois pas ce qui a pu se produire...

  13. #13
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Et bien mon package est : intermed.questionnaire.interfacesBDD;
    Et InterfaceBDD.class se trouve bien dans axis/WEB-INF/classes/intermed/questionnaire/interfacesBDD

    Par contre, il y a une série d'import dans ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import java.sql.Timestamp;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
     
    import bdd_connector.BDD;
    Et je me dis que le dernier import, ben je n'ai pas dû copier le .jar correspondant au bon endroit.
    Mais ce ne serait pas le même message d'erreur je suppose si le problème venait de là.

    Dernière question, n'est-ce pas génant que ma classe ait un constructeur?
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  14. #14
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par natoine Voir le message
    Et je me dis que le dernier import, ben je n'ai pas dû copier le .jar correspondant au bon endroit.
    Mais ce ne serait pas le même message d'erreur je suppose si le problème venait de là.
    Je ne pense pas que ton problème vienne d'ici...

    Citation Envoyé par natoine Voir le message
    Dernière question, n'est-ce pas génant que ma classe ait un constructeur?
    J'ai dû faire ce test une fois, je ne crois pas que cela pose problème...

    Quand tu dis
    Le déploiement se passe bien mais par contre, sur :
    http://localhost:18080/axis/servlet/AxisServlet

    Je me retrouve avec rien de listé.
    Tu veux dire :
    - que tes services ne sont pas listés, mais qu'il y a tout de même encore le service Version initial
    - qu'aucun service n'est listé
    - que le page ne s'affiche pas ?

  15. #15
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    La présence ou non d'un constructeur ne change rien à mon problème, je viens de tenter.

    Pour la liste des services, il ne m'affiche que
    And now... Some Services
    Rien d'autre après.

    Par contre, pour mes .class, j'ai fait une simple copie de mes .class générés par eclipse.
    Je vais essayer de les recompiler par javac.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  16. #16
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut
    Il est possible que tu aies un problème du côté d'Axis, car même si le déploiement de tes services avait échoué, tu devrais toujours avoir le service Version sur la liste...

    Un redéploiement de l'archive axis.war pourrait peut-être être (un peu bourrin mais) efficace...

    En ce qui concerne la compilation ed tes fichiers .class, je ne pense pas qu'utiliser directement javac plutôt que de récupérer les fichiers compilés par Eclipse change quelquechose...

  17. #17
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Donc, j'ai redéployé et je retrouve bien la liste des servlets de base

    * AdminService (wsdl)
    o AdminService
    * Version (wsdl)
    o getVersion
    Je refais ma hierarchie de dossier avec mes .class et mes .wsdd
    Je tape :
    java org.apache.axis.client.AdminClient -p 18080 deploy.wsdd
    J'ai en retour :
    log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).
    log4j:WARN Please initialize the log4j system properly.
    Processing file deploy.wsdd
    <Admin>Done processing</Admin>
    Je recharge la page http://localhost:18080/axis/servlet/AxisServlet
    Et là j'ai :
    Sorry, something seems to have gone wrong... here are the details:

    Fault - Could not find class for the service named: InterfaceBDD
    Hint: you may need to copy your class files/tree into the right location (which depends on the servlet system you are using).; nested exception is:
    java.lang.ClassNotFoundException: InterfaceBDD

    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
    faultSubcode:
    faultString: Could not find class for the service named: InterfaceBDD
    Hint: you may need to copy your class files/tree into the right location (which depends on the servlet system you are using).; nested exception is:
    java.lang.ClassNotFoundException: InterfaceBDD
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}hostname:natoine-laptop
    Le contenu de mon deploy.wsdd
    <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <service name="interfaceBDD" style="java:RPC">
    <parameter name="className" value="InterfaceBDD"/>
    <parameter name="allowedMethods" value="*"/>
    </service>
    </deployment>
    J'en peux plus...
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  18. #18
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut
    Il manque le nom du package de ta classe InterfaceBDD dans ton fichier wsdd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
      <service name="interfaceBDD" style="java:RPC">
        <parameter name="className" value="nom.du.package.InterfaceBDD"/>
        <parameter name="allowedMethods" value="*"/>
      </service>
    </deployment>

  19. #19
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Nickel mes services sont déployés et bien listés.

    Par contre, je teste l'appel d'une méthode qui devrait me renvoyer un booléen (false en l'occurence).
    Et j'ai ce retour :

    <soapenv:Envelope>

    <soapenv:Body>

    <soapenv:Fault>
    <faultcode>soapenv:Server.userException</faultcode>

    <faultstring>
    java.lang.InstantiationException: intermed.questionnaire.interfacesBDD.InterfaceBDD
    </faultstring>

    <detail>
    <ns1:hostname>natoine-laptop</ns1:hostname>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    Je suppose que les booléens ne sont pas aimés comme retour...
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  20. #20
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut
    Je ne pense pas que ton erreur ait à voir avec les booléens (qui sont d'ailleurs parfaitement tolérés), mais plutôt avec une InstantiationException lancée quelquepart.
    Peut-être aurais-tu un newInstance() problématique qui traîne quelquepart côté serveur ?

Discussions similaires

  1. Utilisation de WebServices avec TestComplete
    Par irliam dans le forum Outils
    Réponses: 3
    Dernier message: 09/04/2013, 16h49
  2. Webservice avec AXIS , Eclipse et retour de type complexe
    Par Ashen-Shugar dans le forum Services Web
    Réponses: 2
    Dernier message: 26/12/2007, 21h24
  3. Utiliser des webservices avec nusoap
    Par budiste dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 30/03/2006, 11h56

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