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] Ordre aléatoire des paramètres


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par défaut [Axis] Ordre aléatoire des paramètres
    Bonjour à tous,

    Voilà plusieurs jours que je bute sur un problème de mise en place de WebServices, sans avancer malgré mes multiples recherches sur le net. Je travaille au développement de WebServices qui prennent en paramètres plusieurs chaines de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public Reponse methode(String arg1, String arg2, String arg3, ...) {
        // Le traitement du WebService
    }
    Je me suis rendu compte pendant ma phase de test qu'il arrivait que les paramètres soient intervertis lorsque je mettais des noms aléatoires (ex : appel de la méthode en mettant a=valeur au lieu de arg1=valeur).
    J'ai donc cherché où pouvait se faire le mapping entre les paramètres dans l'URL et les paramètres que récupère le WebService. Au niveau du WSDL, je retrouve les noms de mes différents arguments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    <wsdl:message name="methodRequest">
        <wsdl:part name="arg1" type="soapenc:string"/>
        <wsdl:part name="arg2" type="soapenc:string"/>
        <wsdl:part name="arg3" type="soapenc:string"/>
        ...
    </wsdl:message>
    ...
    ce qui me laisse penser qu'Axis devrait s'y retrouver. Où aurais-je omis un paramétrage permettant le mapping entre les paramètres et les arguments du WebService ?
    Pour info, j'effectue mes tests en appelant manuellement mon WebService via un navigateur (paramètres get dans l'URL), et mes WebServices sont déployés sous Axis.

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Par défaut
    Salut

    Tu utilise java2wsdl ?

  3. #3
    Membre confirmé Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par défaut
    Bonjour,

    Non, je crée mes fichiers de déploiement WSDD puis je lance le déploiement des WebServices à l'aide de la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javac -cp <mon classpath> org.apache.axis.client.AdminClient -lhttp://localhost:8080/services/AdminService deployWebServices.wsdd

  4. #4
    Membre confirmé Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par défaut
    Petite précision complémentaire : lorsque j'appelle mon WebService en spécifiant tous les arguments, si je m'amuse à modifier le nom d'un des paramètres, le WebService ne me remonte aucun problème en particulier.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8080/services/WebService?method=method&AAARRRGG1=valeur&arg2=valeur&arg3=valeur...
    fonctionne de la même manière que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8080/services/WebService?method=method&arg1=valeur&arg2=valeur&arg3=valeur...
    Comme s'il n'y avait pas de vérification sur les noms des paramètres.

  5. #5
    Membre éclairé Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Par défaut
    Salut

    Je connais mieux les Web service avec les IDE mais je vais essayer de t'aider.

    Une piste serait que ton wsdl est mal fait. Vérifie que les balises sont bien là.(TYPES, BINDING ...)

    Puis, je te conseil d'utiliser directement les grands moyen et de laisser tomber les appelles en URL car c'est un peut limité. Appel tes methodes via un *.java.

  6. #6
    Membre confirmé Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par défaut
    Oui, l'appel par URL des WebServices ne me sert que pour effectuer des tests et valider le bon fonctionnement de mes WebServices (les appels sont bien prévus pour être effectués en Java, mais par le client).

    Je pensais aussi à une malformation du WSDL c'est pourquoi j'ai essayé de me tourner vers les différentes balises qu'il pouvait contenir. Je suis tombé sur plusieurs documents différents ne proposant pas toujours les mêmes balises (je ne connaissais d'ailleurs pas l'existence de balises telles que TYPES ou BINDING que tu cites). J'étais donc parti arbitrairement sur du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <operation name="methode">
        <parameter name="arg1" index="0" type="xsd:String" />
        <parameter name="arg2" index="1" type="xsd:String" />
        <parameter name="arg3" index="2" type="xsd:String" />
        ...
    </operation>
    Mais sans doute s'agit-il de balises obsolètes… (à noter qu'en plus, elles ne répondent pas vraiment à ma problématique puisqu'elles gèrent l'ordre des paramètres et non leur nom).
    Du coup, quelles balises dois-je utiliser pour m'assurer du mapping entre les paramètres dans l'URL et les arguments de mon WebService ?

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

Discussions similaires

  1. [AC-2007] Importation d'un fichier CVS vers une table, ordre aléatoire des données
    Par lio33 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/01/2015, 11h48
  2. Ordre aléatoire des éléments d'une liste
    Par Perceuse-Killer dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/08/2011, 17h53
  3. Ordre d’évaluation des paramètres d'une fonction
    Par guillemouze dans le forum Langage
    Réponses: 9
    Dernier message: 17/02/2011, 15h13
  4. [AXIS][ANT]- nom des paramètres dans le wsdl
    Par anaon dans le forum Services Web
    Réponses: 0
    Dernier message: 15/09/2008, 10h58
  5. [JSP] Ordre de réception des paramètres
    Par toctof dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 31/03/2006, 16h11

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