Web Services Axis

cs_Kanaille Messages postés 10 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 2 juin 2004 - 25 mai 2004 à 11:54
zouhiri2 Messages postés 5 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 29 avril 2009 - 29 avril 2009 à 20:37
Bonjour,

J'aimerais savoir si quelqu'un d'entre vous s'y connaitrait en Services Web avec Axis...
En effet, je suis sur un projet de developpement de jeu sur le net.
Et, je dois intégrer des services web à des pages jsp, servlets... mais je ne sais pas comment m'y prendre.

En fait, j'arrive à faire un web service renvoyant simplement un prenom qui est mis en dur dans le code. En effet, le code client contient un main dont le lien du web service, la méthode à utiliser, et le code retour. Cela fonctionne correctement.
Et comme je suis en developpement d'un jeu en ligne sur Internet. Il faudrait que je puisse tester une action; par exemple afficher le déplacement d'un utilisateur d'un quartier à un autre.
Mais, je ne sais pas comment on fait pour lui passer son login + mot passe pour pouvoir récupérer son quartier de départ et son quartier d'arrivée.
Cela fonctionne déjà avec les jsp, servlets mais je ne sais pas comment intégrer les Web Services car il y aura des clients de types pc et téléphone mobile.
Merci d'avance, si vous pouvez m'aider...

14 réponses

cs_tds Messages postés 351 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
25 mai 2004 à 12:39
Connais juste un peu les web services avec Oracle...
Si tu poses des questions très précises, je pourrais peut-être essayer de t'éclairer
B@ron {EU.BELGIUM} :)
0
cs_Kanaille Messages postés 10 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 2 juin 2004
25 mai 2004 à 14:20
Alors je voudrais savoir comment on fait pour utiliser une méthode d'un service web déployé?
En effet, je ne sais pas a quel moment il faut mettre le login et le mot de passe, pour que le client puisse utiliser la méthode du service.
Par exemple, il y a la méthode "se_deplacer" du service web "personnage" que j'aimerai utiliser à travers le client web.
Comment pourrait-on faire pour lui faire passer le login et le mot de passe de l'utilisateur pour que le service web à partir de là puisse récupérer le quartier de départ du joueur et le quartier d'arrivée et l'envoyer au client.

J'espère que t'as compris ce que j'ai écris....

;-)
0
cs_tds Messages postés 351 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
25 mai 2004 à 14:26
Pour ma prat, j'utilisais des fichiers WSDL pour la communication entre mes web services et mes classes...
Tu utilises cela? Je ne connais hélas que ce système là
B@ron {EU.BELGIUM} ;)
0
cs_Kanaille Messages postés 10 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 2 juin 2004
25 mai 2004 à 14:49
J'utilise des fichiers wsdd pour le déploiement des services web.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_tds Messages postés 351 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
25 mai 2004 à 14:56
Demain poste un truc et je mettrai l'exemple WSDL c'est surement très proche
B@ron {EU.BELGIUM} :big)
0
cs_Kanaille Messages postés 10 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 2 juin 2004
25 mai 2004 à 19:17
J'ai essayé d'obtenir le pseudo du joueur à travers la methode getPseudo du Webservice "Personnage" ayant come code : private String pseudo = "titi";.....

public String getPseudo() {
return pseudo;
}

Mais quand j'exécute le client, il me lance cette erreur :

java.lang.InstantiationException: jeu.Personnage

Le client ayant comme code :
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class ClientWeb {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/axis/services/Personnage";

Service service = new Service();
Call call = (Call) service.createCall();

call.setTargetEndpointAddress(new java.net.URL(endpoint));
Integer ret = (Integer) call.invoke("getPseudo", new Object[]{});

System.out.println(
"Pseudo : '"
+ ret
+ "'");
} catch (Exception e) {
System.err.println(e.toString());
}
}
}

Est ce que tu peux m'aider?? :-(
0
cs_Kanaille Messages postés 10 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 2 juin 2004
25 mai 2004 à 22:42
Au fait, j'ai pu résoudre ce problème.
Mais, serait-il possible d'utiliser plusieurs String endpoint dans un meme client?
par exemple : 2 endpoints pour pouvoir utiliser 2 méthodes dont chacune se trouvant dans un web service différent, comme suit:

String endpoint = "http://localhost:8080/axis/services/Personnages";
String endpoint1 = "http://localhost:8080/axis/services/ConnectDB";

Par ailleurs, je voudrais savoir si tu sais comment on fait à partir d'une page jsp récupérer le login + mot de passe et exécuter une méthode d'un web service.
Par exemple, initialiser les variables d'un joueur selon son login + mot de passe à partir d'une base mysql, tout cela grace à la méthode d'un web service.

Merci, ;-))
0
cs_tds Messages postés 351 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
26 mai 2004 à 07:28
Pour ce qui est des pages JSP, bien sur.
Il faut référencer ta classe qui va contacter le web service.
A partir de cette classe tu pourras alors appeller les methodes publiques: accès DB, login, ...

B@ron {EU.BELGIUM}
0
cs_Kanaille Messages postés 10 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 2 juin 2004
26 mai 2004 à 14:54
J'ai essayé de mettre un client Web Service dans une servlet, mon code est la suivante :

package jeu;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class WebServiceMafia extends HttpServlet {

protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

protected void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

private void processRequest(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

try {
String endpoint = "http://localhost:8080/axis/services/Jeu";

Service service = new Service();
Call call = (Call) service.createCall();

call.setTargetEndpointAddress(new java.net.URL(endpoint));

Integer ret = (Integer) call.invoke("getMAXDEPLACEMENT", null);
Integer retu = (Integer) call.invoke("getCOUTDEPLACEMENT", null);
Integer retur = (Integer) call.invoke("getARRIVEEMASSIVE", null);

PrintWriter out = response.getWriter();

out.println( "Le nombre maximum de déplacement par jour est de : '"+ ret + "' dont les 2 dernières payantes.");

out.println( "Le prix du cout de déplacement supplémentaire est de : '"+ retu + "' ?");

out.println( "Arrivée massive de produits : '" + retur+ "'");
} catch (Exception e) {
//System.err.println(e.toString());
System.out.println(e.toString());
}
}

Et quand, je l'exécute à travers tomcat, j'ai l'erreur suivante:
"Servlet.service()" pour la servlet WebServiceMafia a généré une exception
java.lang.NoClassDefFoundError: org/apache/axis/client/Service

Je voudrais donc savoir si c'est déjà possible de faire ca, si oui, saurais tu d'où viens ce problème.

Merci bcp.
0
cs_mouna1 Messages postés 4 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 23 mars 2006
23 mars 2006 à 14:26
Bonjour
en fait j'ai le même probleme pour le webservice concernant :(je ne sais pas a quel moment il faut mettre le login et le mot de
passe, pour que le client puisse utiliser la méthode du service.) d'apres l un de tes messages.
après t'as dit que tu as resolu le probleme, ca sera gentil de me passer le solution

merci et bonne journée .
0
moudm Messages postés 2 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 3 septembre 2008
3 sept. 2008 à 16:20
bonjour,

Je cherche un lien pour telecharger Axis .

merci!!!
0
moudm Messages postés 2 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 3 septembre 2008
3 sept. 2008 à 16:20
bonjour,

Je cherche un lien pour telecharger Axis .

merci!!!
0
zouhiri2 Messages postés 5 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 29 avril 2009
29 avril 2009 à 20:35
salem tt le monde.je te porpose sa Mr [auteur/KANAILLE/276460.aspx Kanaille]
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class za1 extends HttpServlet
{
    @Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

        PrintWriter writer = res.getWriter();
 int a=2;
          int b = 1;
        String endpoint = "http://localhost:8080/axis/ser1.jws?";
        Service  service = new Service();
     Call     call = null;
try
    {
         call = (Call) service.createCall();
    }
catch (ServiceException ex)
    {
         Logger.getLogger(za1.class.getName()).log(Level.SEVERE, null, ex);
    }
       call.setTargetEndpointAddress(new java.net.URL(endpoint));
       String ret = (String) call.invoke( "som",new Object [] { a,b });
      
       writer.println(ret);

    }
    }

le web service:
class ser1
{
public int som(int a,int b)
{
return a+b;
}

}
save it format .jws
0
zouhiri2 Messages postés 5 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 29 avril 2009
29 avril 2009 à 20:37
att remplace
String ret = (String) call.invoke( "som",new Object [] { a,b });
par
Integer ret=(Integer) call.invoke( "som",new Object [] { a,b }); msa7tek et bonne chance
0
Rejoignez-nous