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. #41
    Membre éclairé
    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 : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Par défaut
    Bon oubliez mon post précédent.
    Juste un problème de version java.

    Je vais essayer de te guider un peu quand j'aurai du temps DebutantWS.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  2. #42
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 24
    Par défaut
    d'accord!
    Merci

  3. #43
    Membre éclairé
    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 : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Par défaut
    Est ce que tu pourrais préciser ta question DébutantWS?

    Les web services offrent des services pour d'autres applications.
    En gros tu peux à partir d'une application qui connait ton web service lui demander : exécute telle méthode avec tels paramétres et renvoye moi le résultat.

    Sinon j'ai créé une autre discussion sur ce topic.
    Le premier post liste un ensemble de liens utiles.
    http://www.developpez.net/forums/d60...t-web-service/

    Si ta question c'est comment mettre en oeuvre un client de WS, tu devrais y trouver ta réponse.
    Après si j'ai un peu de temps je te ferai une explication détaillée.
    Mais cette semaine j'ai peu accés au net et je bosse bcp.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  4. #44
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Par défaut
    Merci natoine pour tes explications ci dessus.
    Je t'explique mon objectif:

    J'ai un programme java (ou une application) que j'appelle liste.java et dont le résultat est une liste.. ( c'est à dire quand j'exécute liste.java, j'obtiens une liste de personnes).
    Ma question est la suivante:
    comment créer un service Web qui récupère cette liste et l'envoie à une servelet?

    merci pour tout indication ou suggestion pour finir mon projet..

  5. #45
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 24
    Par défaut
    Bonjour,

    j'ai exactement le même problème que asmoune..

    Merci de me communiquer la solution quand tu l'auras

  6. #46
    Membre éclairé
    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 : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Par défaut
    Alors il faut déployer ton fichier liste.java en tant que WS.
    Ta méthode qui renvoie la liste pourra être appelé par url et le résultat récupéré par un client qui connait ton WS.
    Ta servlet peut très bien être ce client.

    Dans mon cas, j'ai des portlets clients de WebService.
    Je pense que le reste de ce dont tu as besoin est dans les tutos déjà indiqués et les posts précédents.
    J'essaye de te rédiger une solution compléte ce WE si tu ne t'en es pas sorti.

    Mais ça ne devrait pas être très compliqué. Courage.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  7. #47
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Par défaut
    Merci natoine, c'est vraiment très gentil de ta part.

    est ce que tu as un exemple (tout bete) d'un portlet tres simple qui appelle un service web?

    si non j'ai essayé avec la portlet qui existe dans ce lien

    http://www.jahia.net/jahia/webdav/si...Guide_v1.0.pdf

    mais j'ai quelques soucis dessus..

    dans le cas ou ta pas d'exemples à me donner, on va discuter le soucis que j'ai.
    Merci beaucoup

  8. #48
    Membre éclairé
    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 : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Par défaut
    Je suis de retour

    Ah tiens, ça m'étonne de ne pas être tombé sur ce tuto... bon ben c'est pas grave.
    Je vais plutôt te développer mon cas perso :

    Donc un portlet qui appelle un web service.
    Dans mon cas, le Web service est contenu dans Axis, qui lui même est contenu comme une webApp de Tomcat.
    Mon portlet est contenu par JBossPortal.
    Voilà une capture de mon projet sous eclipse.



    Dans SurveyStats.java, il y a une méthode doView et une méthode processAction.
    C'est dans doView que je fais mes appels au WebService.
    Dans processAction, je récupére les paramétres postés par les différents JSP qui fabriquent les différents "états" d'affichage de mon portlet.

    Tu remarqueras aussi dans src le package localhost.axis.services.stats .
    Ce package et son contenu sont auto-générés par Axis en suivant la procédure expliquée dans le tuto, utilisation de WSDL2 : http://karamimed.developpez.com/j2ee/tutoriels/axis/

    Je copie colle la source de SurveyStats.java en fin de post.
    Je mets aussi l'un de mes .jsp, ça peut t'aider pour la partie processAction.

    Un peu plus en détail :
    doView commence par créer le service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    StatsService _service = new StatsServiceLocator();
    		Stats port;
    		try {
    			port = _service.getstats();
    Après, je n'ai plus qu'à faire appel aux méthodes de mon WS en appelant port.maMethod().

    Pour le reste, j'attends tes questions .
    J'espére que ça t'aidera.

    SurveyStats.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
    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
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    public class SurveyStats extends GenericPortlet
    {
    	protected void doView(RenderRequest rRequest, RenderResponse rResponse) throws IOException, PortletException
    	{
    		StatsService _service = new StatsServiceLocator();
    		Stats port;
    		try {
    			port = _service.getstats();
     
     
    		rResponse.setContentType("text/html");
    		PortletRequestDispatcher prd;
    		int _mode = -1;
    		if(rRequest.getParameter("mode")!=null) _mode =	Integer.parseInt(rRequest.getParameter("mode"));
    		System.out.println("[Portlet interviewee] doView "+ _mode);
    		int _id_survey;
    		Object _survey;
    		Object[] _sections;
    		Object[] _surveys;
    		Object[] _closed_surveys;
    		String _state;
    		String _validate;
    		int _id_user;
    		switch(_mode)
    		{
    		case Constants.VIEW_SURVEYS : 
    			//récupération de l'identifiant utilisateur
    			_id_user = Integer.parseInt(rRequest.getParameter("_id_user"));
    			rRequest.setAttribute("_id_user" , "" + _id_user);
    			//appel au WS pour récupérer tous les surveys
    			//ajout des surveys à request
    			System.out.println("[Portlet] view_survey _id_user : " + rRequest.getParameter("_id_user"));
    			_surveys = (Object[]) port.getOpenSurveys();
    			rRequest.setAttribute("_surveys", _surveys);
    			for(int i=0;i<_surveys.length;i++)
    			{
    				int nbValidated = port.getHowManyHaveValidated(Integer.parseInt((String)((Object[])_surveys[i])[2]));
    				rRequest.setAttribute("_how_many_validated_" + Integer.parseInt((String)((Object[])_surveys[i])[2]), "" +  nbValidated);
    			}
    			_closed_surveys = (Object[]) port.getClosedSurveys();
    			rRequest.setAttribute("_closed_surveys", _closed_surveys);
    			for(int i=0;i<_closed_surveys.length;i++)
    			{
    				int nbValidated = port.getHowManyHaveValidated(Integer.parseInt((String)((Object[])_closed_surveys[i])[2]));
    				rRequest.setAttribute("_how_many_validated_" + Integer.parseInt((String)((Object[])_closed_surveys[i])[2]), "" +  nbValidated);
    			}
    			prd = getPortletContext().getRequestDispatcher(rResponse.encodeURL("/WEB-INF/jsp/view_surveys.jsp"));
    			prd.include(rRequest, rResponse);
    			break;
    		case Constants.VIEW_SURVEY_CONTENT :
    			_id_user = Integer.parseInt(rRequest.getParameter("_id_user"));
    			rRequest.setAttribute("_id_user" , "" + _id_user);
    			_id_survey = Integer.parseInt(rRequest.getParameter("_id_survey"));
    			System.out.println("[Portlet VIEW_SURVEY_CONTENT] id survey = " + _id_survey);
    			//appel au web service pour récupération du questionnaire
    			_survey = (Object)port.getSurvey(_id_survey);
    			rRequest.setAttribute("_survey", _survey);
    			_state = port.getCurrentState(_id_survey);
    			rRequest.setAttribute("_state" , _state);
    			String _openDate = port.getOpenedDate(_id_survey).toString();
    			rRequest.setAttribute("_opened_date" , _openDate);
    			if(port.getCurrentStateId(_id_survey)==3) rRequest.setAttribute("_closed_date", port.getClosedDate(_id_survey).toString());
    			rRequest.setAttribute("how_many_validated" , rRequest.getParameter("how_many_validated"));
    			//appel au WebService pour récupération des sections (avec les questions à l'intérieur)
    			_sections = (Object[])port.getSections(_id_survey);
    			rRequest.setAttribute("_sections", _sections);
    			for(int i=0; i<_sections.length;i++)
    			{
    				String _id_section = ((String[])_sections[i])[0];
    				//récupération des questions
    				Object[] _questions = (Object[])port.getQuestions(Integer.parseInt(_id_section));
    				rRequest.setAttribute("_questions" + _id_section, _questions);
    				for(int j=0;j<_questions.length;j++)
    				{
    					String _id_question = ((String[])_questions[j])[0];
    					//récupération du nombre de réponses 
    					rRequest.setAttribute("_how_many_answered"+_id_question , "" + port.getHowmanyHaveAnswered(Integer.parseInt(_id_question)));
    					//si question libre
    					if(port.isFreeQuestion(Integer.parseInt(_id_question)))
    					{
    						//récupération des réponses
    						Object[] _free_answers = port.getFreeAnswers(Integer.parseInt(_id_question), _id_survey);
    						rRequest.setAttribute("_free_answers" + _id_question , _free_answers);
    					}
    					else
    					{
    //						récupération des réponses possibles
    						Object[] _pas = (Object[])port.getPossibleAnswers(Integer.parseInt(_id_question));
    						rRequest.setAttribute("_pas" + _id_question , _pas);
    						for(int k=0;k<_pas.length;k++)
    						{
    							int _nb_choosed = port.getHowManyChoosedThisAnswer(Integer.parseInt(((String[])_pas[k])[0]), Integer.parseInt(_id_question));
    							int _nb_choosed_validated = port.getHowManyChoosedAndValidatedThisAnswer(Integer.parseInt(((String[])_pas[k])[0]), Integer.parseInt(_id_question));
    							rRequest.setAttribute("_nb_choosed" + ((String[])_pas[k])[0] , _nb_choosed);
    							rRequest.setAttribute("_nb_choosed_validated" + ((String[])_pas[k])[0] , _nb_choosed_validated);
    							if(_nb_choosed>0) rRequest.setAttribute("_ischecked" + ((String[])_pas[k])[0] , 1 );
    							else rRequest.setAttribute("_ischecked" + ((String[])_pas[k])[0] , 0 );
    						}
    					}
    				}
    			}
    			prd = getPortletContext().getRequestDispatcher(rResponse.encodeURL("/WEB-INF/jsp/view_survey_content.jsp"));
    			prd.include(rRequest, rResponse);
    			break;
    			default :
    				//à décommenter après phase de test
    				//prd = getPortletContext().getRequestDispatcher(rResponse.encodeURL("/WEB-INF/jsp/error.jsp"));
     
    				//appel au WS pour récupérer tous les surveys
    				rRequest.setAttribute("_id_user" ,"" + 1);
    				_surveys = (Object[]) port.getOpenSurveys();
    				_closed_surveys = (Object[]) port.getClosedSurveys();
    				//ajout des surveys à request
    				rRequest.setAttribute("_surveys", _surveys);
    				rRequest.setAttribute("_closed_surveys", _closed_surveys);
     
    				for(int i=0;i<_surveys.length;i++)
    				{
    					int nbValidated = port.getHowManyHaveValidated(Integer.parseInt((String)((Object[])_surveys[i])[2]));
    					rRequest.setAttribute("_how_many_validated_" + Integer.parseInt((String)((Object[])_surveys[i])[2]), "" +  nbValidated);
    				}
    				rRequest.setAttribute("_closed_surveys", _closed_surveys);
    				for(int i=0;i<_closed_surveys.length;i++)
    				{
    					int nbValidated = port.getHowManyHaveValidated(Integer.parseInt((String)((Object[])_closed_surveys[i])[2]));
    					rRequest.setAttribute("_how_many_validated_" + Integer.parseInt((String)((Object[])_closed_surveys[i])[2]), "" +  nbValidated);
    				}
     
    				prd = getPortletContext().getRequestDispatcher(rResponse.encodeURL("/WEB-INF/jsp/view_surveys.jsp"));
    				prd.include(rRequest, rResponse);
    				break;
     
    		}
    		} catch (ServiceException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
     
    	public void processAction(ActionRequest aRequest, ActionResponse aResponse) throws PortletException, IOException, UnavailableException
    	{
    		StatsService _service = new StatsServiceLocator();
    		Stats port;
    		String _id_user = "" + aRequest.getParameter("_id_user");
    		aResponse.setRenderParameter("_id_user", _id_user);
    		try 
    		{
    			port = _service.getstats();
    			int _mode =	Integer.parseInt(aRequest.getParameter("mode"));
    			String id_survey;
    			String how_many_validated;
    			System.out.println("[PORTLET interviewee] processAction " + _mode);
    			switch(_mode)
    			{
    			case Constants.VIEW_SURVEY_CONTENT :
    				id_survey = "" + aRequest.getParameter("id_survey");
    				aResponse.setRenderParameter("_id_survey", id_survey);
    				how_many_validated = "" + aRequest.getParameter("how_many_validated");
    				aResponse.setRenderParameter("how_many_validated", how_many_validated);
    				break;
    			default: break;
    			}
    			aResponse.setRenderParameter("mode", ""+_mode);
    		} 
    		catch (ServiceException e) 
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    }
    view_surveys.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
    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
     
    <%@ page 
    	import="intermed.survey.stats.*"
    	import="javax.portlet.*"
    	import="java.util.List;"
    	language="java"
    	contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"
    %>
    <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
    <portlet:defineObjects/>
    	<table id="open_surveys_list">
    		<caption>Liste des questionnaires ouverts:</caption>
    		<%
    				Object _ob_id_user = (Object)renderRequest.getAttribute("_id_user");
    				String _id_user = (String)_ob_id_user;
    				Object[] _surveys = (Object[])renderRequest.getAttribute("_surveys");
    				for(int i=0 ; i<_surveys.length ; i++)
    				{
    					Object ob_nbValidated = (Object)renderRequest.getAttribute("_how_many_validated_" + ((String[])_surveys[i])[2]);
    					String nbValidated = (String)ob_nbValidated;
    				%>
    				<tr>
    				<td>
    					<a href="<portlet:actionURL portletMode='view'>
    					<portlet:param name='id_survey' value='<%=((String[])_surveys[i])[2]%>'/>
     					<portlet:param name='mode' value='<%=""+Constants.VIEW_SURVEY_CONTENT%>'/>
     					<portlet:param name="_id_user" value="<%=""+_id_user%>"/>
     					<portlet:param name="how_many_validated" value="<%="" + nbValidated %>"/>
    					</portlet:actionURL>" title="<%=((String[])_surveys[i])[1] %>">
    				<%= 
    					((String[])_surveys[i])[3]
    				%>
    					</a>	
    				</td>
    				<td>
    				Etat :
    				</td>
    				<td>
    				<%= 
    					((String[])_surveys[i])[4]
    				%>
    				</td>
    				<td>
    				Créé le : <%= ((String[])_surveys[i])[0]%>
    				</td>
    				<td>
    				Validé par <%= "" + nbValidated %> utilisateurs
    				</td>
    				</tr>
    				<%
    			}
    		%>
    	</table>
    	<table id="closed_surveys_list">
    		<caption>Liste des questionnaires fermés:</caption>
    		<%
    				_surveys = (Object[])renderRequest.getAttribute("_closed_surveys");
    				for(int i=0 ; i<_surveys.length ; i++)
    				{
    					Object ob_nbValidated = (Object)renderRequest.getAttribute("_how_many_validated_" + ((String[])_surveys[i])[2]);
    					String nbValidated = (String)ob_nbValidated;
    				%>
    				<tr>
    				<td>
    					<a href="<portlet:actionURL portletMode='view'>
    					<portlet:param name='id_survey' value='<%=((String[])_surveys[i])[2]%>'/>
     					<portlet:param name='mode' value='<%=""+Constants.VIEW_SURVEY_CONTENT%>'/>
     					<portlet:param name="_id_user" value="<%=""+_id_user%>"/>
     					<portlet:param name="how_many_validated" value="<%="" + nbValidated %>"/>
    					</portlet:actionURL>" title="<%=((String[])_surveys[i])[1] %>">
    				<%= 
    					((String[])_surveys[i])[3]
    				%>
    					</a>	
    				</td>
    				<td>
    				Etat :
    				</td>
    				<td>
    				<%= 
    					((String[])_surveys[i])[4]
    				%>
    				</td>
    				<td>
    				Créé le : <%= ((String[])_surveys[i])[0]%>
    				</td>
    				<td>
    				Fermé le : <%= ((String[])_surveys[i])[5]%>
    				</td>
    				<td>
    				Validé par <%= "" + nbValidated %> utilisateurs
    				</td>
    				</tr>
    				<%
    			}
    		%>
    	</table>
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  9. #49
    Membre éclairé
    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 : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Par défaut
    Je relance ce sujet.
    J'ai changé de machine.
    J'ai refait une install toute propre (ubuntu 8.10).

    Et du coup je me suis dit, pourquoi pas tester de passer à Tomcat 6?
    Et ben là du coup je pleure.
    Tomcat 6 super facile à installer avec les paquets.
    Par contre pas moyen de déployer axis 1.4.
    J'ai pourtant fait comme avant.

    Hop le dossier webapps/axis au bon endroit.
    Le fichier activation.jar dans WEB-INF/lib
    Et pas moyen de voir axis dans les applis déployées de Tomcat 6...

    Please HELP
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  10. #50
    Membre éclairé
    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 : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Par défaut
    Finalement je suis repassé sous Tomcat 5.5.

    Par contre j'ai un nouveau problème.
    Mes Web Services ne sont plus déployés quand je redémarre ma machine.
    Comment faire pour qu'ils restent déployés d'un démarrage à un autre?
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

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