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 :

[Web Service] question de comprendre


Sujet :

Services Web Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Informaticien
    Inscrit en
    Août 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Août 2004
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Web Service] question de comprendre
    Bonjour

    je suis nouveau en Web service. j'ai développé un service web qui prend en entrée un string et dois normalement retourner plusieurs champs d'une base de données. J'ai une seule methode. Pour le retour, je concatène les champs et et je recupère pour le traitement.

    J'aimerai savoir si c'est possible de retourner tous les champs avec une seule methode? Sinon est-ce qu'il existe une autre manière plus professionnelle de le faire?

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import java.sql.*;
     
    public class Temps {
     
    	public String meteo ( String pay )throws Exception {
    	        int mat=0 soir=0;
    	        java.lang.String nature = new java.lang.String();
    	        java.lang.String pays = new java.lang.String();
    	        java.util.Date date = new java.util.Date();
     
    		    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	        Connection conn = DriverManager.getConnection("jdbc:odbc:test");
    	        Statement stmt = conn.createStatement();
    	        ResultSet RS= stmt.executeQuery("select * from ami where pays='"+pay+"'");
     
    	        while (RS.next()) {
    	            date= RS.getDate(1);
    	            pays=RS.getString(2);
    	            mat=RS.getInt(3);
    	            soir=RS.getInt(4);
    	            nature=RS.getString(5);
    	        }
     
     
    	        stmt.close();
    	        conn.close();
    	        return date.toString()+"&"+ pays +"&"+ mat +"&"+ soir +"&"+ nature;
     
    	    }
     
    	}
    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Points : 459
    Points
    459
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    List liste = new ArrayList();
    while (RS.next()) {
        MonBean bean = new MonBean();
        bean.setDate(RS.getDate(1));
        bean.setPays(RS.getString(2));
        bean.setMat(RS.getInt(3));
        bean.setSoir(RS.getInt(4));
        bean.setNature(RS.getString(5));
        liste.add(bean);
    }
    // ...
    return liste;

  3. #3
    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
    Attention avec l'utilisation des List dans des web services...
    c'est pas toujours très bien supporté... je ferais plutôt
    une classe pour encapsuler ce que tu dois retourner, ou
    sinon, un tableau de String, qui sera supporté plus facilement qu'une List...
    A+

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Informaticien
    Inscrit en
    Août 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Août 2004
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Merci pour les reponse
    Effectivement j'ai vu sur le forum que les listes engendrent fréquemment des problèmes en Web services.

    la solution d'encapsuler une classe semble beaucoup m'intéresser mais la question que je me pose est comment je vais pouvoir accéder aux informations encapsulées dans ma classe dans mon code client.

    Est-ce à dire que la classe encapsulée doit être définie côté client et serveur? car mon code serveur devrait être sur un site distant.

    Merci d'avance.

  5. #5
    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
    Est-ce à dire que la classe encapsulée doit être définie côté client et serveur?
    Non, pas forcément, il existe des outils qui vont faire le passage du SOAP (reçu) à ta classe java définit sur le client uniquement. la WSDL contient toutes les infos nécessaires pour faire ce transfère (le portType (qui a le même rôle qu'une interface en java), les messages et les types).

    la classe client peut même être générée automatiquement depuis la wsdl,
    par exemple avec l'outil wsimport livré de base avec le jdk 1.6 de sun, mais aussi avec d'autre outils.

    La norme JAX-WS parle de tout cela. elle s'appuie sur d'autres technologies : JAXB et JAXP
    [edit]
    un lien sympa sur JAXB...
    http://java.sun.com/developer/techni...axb/index.html
    [/edit]

    A+

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Informaticien
    Inscrit en
    Août 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Août 2004
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Merci
    Merci beaucoup pour les précisions

    sur ce, je vais visiter le lien afin d'affrondir.

    Bonne journée

  7. #7
    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
    Le lien est juste pour info, si tu utilises wsimport, tout est automatique, mais bon, c'est toujours interessant de savoir ce que fait JAXB

    A+

  8. #8
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Points : 459
    Points
    459
    Par défaut
    Le problème suscité était plutôt une méthode assez "propre" pour récupérer les champs d'une base de données.

    De plus les List sont un faux problème. Ce n'est qu'une question de framework, car les XmlSchema supporte heureusement la multiplicité (<xs:element maxOccurs="..." />)

  9. #9
    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
    Citation Envoyé par bugsan Voir le message

    De plus les List sont un faux problème. Ce n'est qu'une question de framework, car les XmlSchema supporte heureusement la multiplicité (<xs:element maxOccurs="..." />)
    oui oui, on est bien d'accord, c'est un problème de framework...
    je voulais juste faire un retour d'expérience sur l'utilisation des List...

    Puisqu'on y est, j'ai aussi eu des problèmes en utilisant des messages qui ne pointent pas sur un element, mais sur un type primaire directement (un string par ex...).
    A+

Discussions similaires

  1. [c#][Web services] question sur le fichier WSDL
    Par toxycyty dans le forum C#
    Réponses: 0
    Dernier message: 21/04/2010, 17h19
  2. [c#][Web services] question sur le fichier WSDL
    Par toxycyty dans le forum C#
    Réponses: 1
    Dernier message: 21/04/2010, 15h30
  3. Question sur Web Services Enhancements 2.0?
    Par ouadie99 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 06/02/2009, 19h01
  4. Questions sur les web services
    Par darude94 dans le forum Services Web
    Réponses: 3
    Dernier message: 24/11/2008, 18h00
  5. Question performance web service
    Par zulot dans le forum Services Web
    Réponses: 5
    Dernier message: 14/09/2007, 10h06

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