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 :

Un client "presque" SOAP


Sujet :

Services Web Java

  1. #1
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut Un client "presque" SOAP
    Bonjour,

    Je suis dans l'hésitation au niveau du choix des outils. Je dois construire un client SOAP, mais cependant le fournisseur du service, pour diverses raisons qui lui paraissent justifiées, a placé quelques aménagements à lui dans la norme SOAP. À vrai dire ce n'est pas du SOAP, mais il se trouve que cela en est quelques fois.

    Ainsi il faut faire précéder le message SOAP par une chaine de caractères (par ex. "RequestMess=<?xml"... suit le message SOAP), il ne faut pas mettre xml comme type mime, mais form-urlencoded et ainsi de suite ; je découvre les "aménagements" au fur et à mesure.

    Du coup je ne sais pas s'il est justifié d'utiliser un outil comme Axis pour faire le client, puisque je me retrouve en permanence à plonger dans la tuyauterie interne - que je ne connais pas plus que ça, et dont la doc me parait pour le moins pas très claire, pour négocier avec les particularismes.

    J'ai essayé avec HttpClient sur un message prédéfini, et au moins ça marche tout de suite - mais cela m'oblige à refaire tout ce qui existe à 90% dans Axis.

    Que feriez-vous à ma place ? Entrer dans la tuyauterie d'Axis, ou faire à la va-comme-je-te-pousse avec HttpClient ? Y a-t-il un paquetage qui soit entre les deux ?

    Merci d'avance pour vos idées.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  2. #2
    oca
    oca est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    Points : 421
    Points
    421
    Par défaut
    je verrais bien un intermédiaire qui s'occupe de faire la conversion.
    ton client ferait donc du soap "standard", et l'envoie a l'intermédiaire
    qui s'occupe de la convertion et appelle le serveur final avec du soap "custom"

    si ce n'est pas possible, j'utiliserais HTTPClient pour ce qui est HTTP, et
    une autre lib (JAXB?) pour créer le message SOAP.

    A+

  3. #3
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Le problème est que je ne suis pas encore parvenu à choper la portion HTTP (ou https, pour être précis) de l'échange SOAP avec Axis ! Je tournique depuis je ne sais combien de temps, et je n'ai pas compris comment on pouvait choper le flux just'avant qu'il ne s'échappe sur le réseau, ou juste après son retour.

    Je comprends rien à la doc sur ces sujets (et de toutes façons du patois Axis je ne parviens même pas à trouver ce qui correspond à mon langage à moi), et tous mes essais sont des échecs.

    Quand à un deal JAXB/HTTPClient... pourquoi pas, car je ne connais pas JAXB, et ce serait l'occasion de s'y mettre, si c'est pas trop long à se former ? Cela se transforme facilement, un message plus ou moins soap (cela semble être du SOAP à 99% quand même) avec JAXB ?
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  4. #4
    oca
    oca est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    Points : 421
    Points
    421
    Par défaut
    Je connais pas très bien jaxb, mais il permet de faire du
    mapping java -> xml
    donc cela peut aider à créer le Body du soap.

    Après il faut peut-être ajouter l'enveloppe, voir un header si besoin...

    Il y a même peut-être d'autre lib mieux adaptée que jaxb pour soap ... à voir ..

    un petit lien sympa sur jaxb, chap 37 tu tutoriel jmd des cours et tutoriels pour apprendre Java : http://java.developpez.com/cours/

    A+

  5. #5
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Plus ça va, plus j'ai l'impression que la partie proprement SOAP fond comme neige au soleil dans mon appli... Donc l'option JAXB+HTTPClient semble être la moins mauvaise.

    Cependant, à partir du moment où on a le message XML, est-ce difficile de le mettre dans un échange SOAP, ou dans ce qui en reste ?

    ... et JAXB est-il un bon cheval ? Certes le fait qu'il soit intégré au JDK est un TRES BON POINT, mais il se peut qu'il soit pas terrible quand même ? Le DOM n'a pas très bonne presse, pourtant il est aussi dans le JDK, et je crois avoir compris qu'Axis se servait d'un truc nommé Axiom pour ses mappings au lieu de JAXB ?...

    Que faire, non d'un chien, que faire.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

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

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