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 :

Exemple déroulement d'appels de services web


Sujet :

Services Web Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 134
    Points : 65
    Points
    65
    Par défaut Exemple déroulement d'appels de services web
    Bonjour , je veux utilisé jdevelopper et oracle 10g pour la création des servie web et interface

    1- je voudrais savoir que veux dire l'invocation dynamique de service web et l'invocation statique de servie web . et dans quel cas les utilisé ?

    2- utl http sert a l'appel de servie web , es qu'il fait parti de soap? et sinon c'est quoi la différence ?


    en gros es qu'il y a des exemples qui montre le déroulement exacte de utl http et des trigger+ wsdl soap ?

    j'arrive pas a différencier et a trouver un enchainement logique entre eux (de l'interface jusqu'à l'affichage du résultat ) , si quelqu'un peut m'éclairer d'avantage ( tout est flou) .

    merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Développement, conception technique et qualité de code
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Développement, conception technique et qualité de code

    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Points : 27
    Points
    27
    Par défaut
    Bonjour

    je ne connais pas UTL Http mais les premières réponses de Bing ou Google semblent intéressantes si tu lis l'anglais couramment.

    Voilà ce que j'ai compris de l'appel de web services d'un point de vue client :

    Le binding statique consiste à compiler et lier ton proxy client au moment du développement. (Si ton service Toto reçoit deux champs "nom" et "prenom", tu génères la classe "TotoStub" avec les accesseurs sur "nom" et "prenom"). Tu es alors pieds et poings liés avec le service qui se trouve en face mais tu dispose d'un cadre rigoureux de programmation. Si ton service évolue tu dois faire évoluer ton code. Je crois que c'est la plus performante des trois solutions, mais c'est aussi la plus contraignante en termes de mise en place et de suivi.

    Le binding dynamique consiste à ne compiler que l'interface correspondant à ton service (description des entrées/sorties, le port-type de ton WSDL). A l'exécution ton client génère dynamiquement le <binding> qui va bien (cf. WSDL) et le colle derrière ton interface. Pour toi ça reste transparent, on reste presque dans le même cas que précédemment. C'est clairement moins performant, mais tu n'as pas à générer et embarquer tes stubs pendant ta phase de développement. Tu es moins dépendant des évolutions de ton service.

    L'invocation dynamique consiste à construire à la main la requête à envoyer à ton service et à décortiquer (également à la main) la réponse de ce dernier. Tu disposes alors de toute la liberté voulue pour faire ce que tu veux (un peu comme la chèvre de Mr Seguin).

    Je choisirai la première solution si ton service n'est pas appelé à bouger ou que tes développeurs ne maîtrisent pas vraiment l'environnement métier, la seconde si tu n'as pas de problématique de performance ou que tu as surtout besoin de données tabulaires, la troisième si tes services sont simples et que tu ne veux pas sortir la grosse artillerie (et que tu n'as pas peur des loups ^^).

    Personnellement j'utilise un mélange de la deuxième et de la troisième.
    Tu devrais jeter un coup d'œil sur les packages javax.xml de la jvm

    Le binding statique est bien documenté sur le net, le reste l'est moins aussi voilà un exemple de connexion à un service SOAP 1.1:
    Préparation du convoyeur (il faut l'url, le nom du service, celui de la méthode, le user et le password de connexion si nécessaire)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    QName vPortQName = new QName(URL, aServiceName + "HttpPort");
    Service vService = Service.create(new URL(URL + aServiceName + "?wsdl"),  new QName("http://www.monservice.com", aServiceName));
    vService.addPort(vPortQName, SOAPBinding.SOAP11HTTP_BINDING, URL + aServiceName);
    Dispatch<SOAPMessage> vDispatch = vService.createDispatch(vPortQName, SOAPMessage.class, Service.Mode.MESSAGE);
    vDispatch.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, URL + aServiceName);
    vDispatch.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, aUser);
    vDispatch.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, aPassword);
    Préparation de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOAPMessage vRequest = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL).createMessage();
    Je te laisse jouer avec SOAPElement pour alimenter ton message.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aRequest.getSOAPPart().getEnvelope().getBody().addChildElement(...
    Construction de l'enveloppe (Tree to XMLsoap)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vRequest.saveChanges();
    Envoi au serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOAPMessage response = vDispatch.invoke(vRequest);
    Après tu lis ta réponse comme tu l'entends.

    En espérant que ça puisse aider.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    Bonjour , merci pour ta réponse
    j'ai un trigger qui se déclenche lors d'une insertion. il fait appel a des methodes get (soap) pour appel du service qui contient l'information recherché.
    chaque réponse est une entrée à la méthode suivante "get" ( dans le trigger )pour recherché encore une fois une autre réponse .
    en gros avant d'insérer, on doit vérifier un certain nombres de données qui sont distribuée dans le réseau bon pour le moment je suis en mono poste @ 127.0.0.1

    donc ds se cas là es-que c'est une invocation dynamique ou statique?

    Rq: je n'utilise pas uddi je passe directe à l'appel du service .

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    Bonsoir
    je voudrai relancé le sujet:
    es-qu'il est possible de m'envoyer de la documentation sur les differents invocation du service web ?
    merci

Discussions similaires

  1. [Eclipse] erreur lors l'appel du service web
    Par khallou2007 dans le forum Services Web
    Réponses: 9
    Dernier message: 03/12/2008, 22h53
  2. Réponses: 1
    Dernier message: 04/06/2007, 15h14
  3. Réponses: 1
    Dernier message: 12/02/2007, 15h22
  4. Réponses: 6
    Dernier message: 21/07/2006, 02h19

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