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 :

Invoquer un Web Service depuis un programme Java ?


Sujet :

Services Web Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 167
    Points : 69
    Points
    69
    Par défaut Invoquer un Web Service depuis un programme Java ?
    Bonjour,

    J'ai déployé un Web Service en Java sur un serveur Tomcat + Axis2.
    Je suis en train de réaliser un autre Web Service à l'intérieur duquel j'aimerais invoquer le premier Web Service.

    Je suppose que je suis obligé d'utiliser les librairies d'axis2 comme décrit ici lien ?

    J'ai bien essayé mais je ne parviens pas a invoquer mon Web Service. Je pense que je fais des erreurs dans les paramètres des méthodes.
    Y'a t'il un autre moyen simple d'invoquer un Web Service en Java ? sinon, pouvez vous m'expliquer comment faire avec la méthode donné par le lien ci-dessus ?

    Merci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 59
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Je vais faire exactement la même chose et avec la même chose, c-a-d Tomcat + Axis2...
    Donc a suivre.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 59
    Points : 63
    Points
    63
    Par défaut
    Voilà:

    Imagine le WS suivant qui fait une conversion celsius to fahrenheit et inversement:

    package ws.example;

    /**
    * Temperature Converter Implementation Class
    */
    public class TemperatureConverter {
    /**
    * util method to convert celsius to fahrenheit
    * @param cValue : double value of celsius
    * @return calculated value of fahrenheit
    */
    public double c2fConvertion(double cValue) {
    return ((cValue * 9.0)/5.0 )+ 32.0;
    }

    /**
    * util method to convert fahrenheit to celsius
    * @param fValue : double value of fahrenheit
    * @return calculated value of celsius
    */
    public double f2cConvertion(double fValue) {
    return ((fValue - 32.0) * 5.0) / 9.0;
    }
    }
    Pour le consommer via un client Java, j'ai testé sous AXIS2, il est donc obligatoire de récupérer le WSDL via AXIS:
    http://localhost:8080/axis2/services...Converter?wsdl

    Ensuite création du stub avec le WSDL (avec le nom TemperatureConverter.wsdl par ex):

    WSDL2Java -uri TemperatureConverter.wsdl -p ws.example -d adb -s -o build\client

    dans build\client tu as la class "stub" a utiliser avec ton client:

    package ws.example;

    public class TemperatureConverterServiceClient {
    public static void main(String[] args) {
    TemperatureConverterStub stub;
    try {
    double c_value = 32;
    stub = new TemperatureConverterStub("http://localhost:8080/axis2/services/TemperatureConverter");
    TemperatureConverterStub.C2FConvertion c2f = new TemperatureConverterStub.C2FConvertion();
    c2f.setCValue(c_value);
    TemperatureConverterStub.C2FConvertionResponse res = stub.c2FConvertion(c2f);
    System.out.println("C Value : "+c_value+ "\tResult : " +res.get_return());
    TemperatureConverterStub.F2CConvertion f2c = new TemperatureConverterStub.F2CConvertion();
    f2c.setFValue(res.get_return());

    TemperatureConverterStub.F2CConvertionResponse res1 = stub.f2CConvertion(f2c);
    System.out.println("F Value : "+res.get_return()+ "\tResult : " +res1.get_return());
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    Et hop çà marche pour l'ex !!!

    C'est un ex, dans mon cas l'étape suivante qui consiste a utiliser non plus un ex mais mon propre WS avec son client ne marche pas... enfin je n'arrive pas a créer le client.

    en fait dans le stub je crois avoir compris qu'il doit y avoir une méthode qui correspond a la méthode du WS et une pour la réponse:

    Dans le WS d'ex TemperatureConverter , il y a la méthode c2fConvertion et dans le stub C2FConvertion mais aussi C2FConvertionResponse.
    Dans mon caas j'ai la méthode xxxxxxResponse mais pas la xxxxxx...

    Peut-être un pb avec mon WSDL ou mon service.xml ???

  4. #4
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 66
    Points
    66
    Par défaut
    La génération de code java ne prend pas en compte le service.xml (il peut te le générer) par contre c'est peut etre le WSDL qui ne passe pas.

    pour la création de client (a l'aide d'outils) : http://ws.apache.org/axis2/1_4_1/use...#createclients

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 59
    Points : 63
    Points
    63
    Par défaut
    Dans mon cas j'ai résolu mon pb... j'avais pas mes lunettes
    ma fct était bien là

    Par contre pour l'auteur du post je ne sais pas

Discussions similaires

  1. invoquer web service depuis un pda
    Par belfafi dans le forum Windows Mobile
    Réponses: 3
    Dernier message: 08/08/2011, 09h20
  2. Créer un client java pour invoquer un Web Service
    Par titifa123 dans le forum Services Web
    Réponses: 12
    Dernier message: 21/04/2011, 01h57
  3. invoquer un web service java par javascript
    Par majda_afkir dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/05/2009, 01h51
  4. Problème sur la commande COPY depuis un programme Java
    Par klereth dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 10/02/2006, 14h14
  5. Invoquer un Web Service !
    Par Philorix dans le forum ASP
    Réponses: 6
    Dernier message: 12/01/2005, 17h30

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