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 :

Envoyer un objet en paramètre d'un web service soap


Sujet :

Services Web Java

  1. #1
    Membre régulier Avatar de kodo
    Profil pro
    Chef de projet technique
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet technique

    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 92
    Points
    92
    Par défaut Envoyer un objet en paramètre d'un web service soap
    Bonjour,
    je suis nouveau dans les web services. je cherche à appeler un web service SOAP qui accepte un objet en entrée et renvoie objet en sortie.

    Les exemples que je trouve concernent juste l'utilisation des types simples (String , ou int en entrée et sortie)
    Je travaille avec spring, et apache cxf, et je veux implémenter le mode java first

    Merci de votre aide.

  2. #2
    Membre régulier Avatar de kodo
    Profil pro
    Chef de projet technique
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet technique

    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 92
    Points
    92
    Par défaut
    Bonjour,
    Je partage avec vous le code que j'ai fait ainsi que le wsdl généré.

    Interface WS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @WebService(name="smsWs")
    public interface ISmsWS {
     
    	@WebMethod
    	public InfoProduit getInfoProduit(DemandeInfoProduit demandeInfoProduit);
     
    	@WebMethod
    	public String getTypeProduit(String numeroProduit);
    }
    DemandeInfoProduit
    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
    import java.io.Serializable;
     
    import javax.xml.bind.annotation.XmlRootElement;
     
    @XmlRootElement
    public class DemandeInfoProduit implements Serializable{
     
    	private static final long serialVersionUID = 1L;
    	private String numeroProduit;
     
    	public String getNumeroProduit() {
    		return numeroProduit;
    	}
    	public void setNumeroProduit(String numeroProduit) {
    		this.numeroProduit = numeroProduit;
    	}
    }
    InfoProduit

    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
     
    import java.io.Serializable;
     
    public class InfoProduit  implements Serializable{
    	private static final long serialVersionUID = 1L;
    	private String nomClient;
    	private Integer solde;
     
    	public String getNomClient() {
    		return nomClient;
    	}
    	public void setNomClient(String nomClient) {
    		this.nomClient = nomClient;
    	}
    	public Integer getSolde() {
    		return solde;
    	}
    	public void setSolde(Integer solde) {
    		this.solde = solde;
    	}
     
    }
    le wsdl généré après déploiement sur Tomcat :
    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
    <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://impl.ws.service.com.soap.example/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:ns1="http://ws.service.com.soap.example/" name="smsWs" targetNamespace="http://impl.ws.service.com.soap.example/">
    <wsdl:import location="http://localhost:8080/sms-api/services/sms?wsdl=smsWs.wsdl" namespace="http://ws.service.com.soap.example/"></wsdl:import>
    <wsdl:binding name="smsWsSoapBinding" type="ns1:smsWs">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getInfoProduit">
    <soap:operation soapAction="" style="document"/>
    <wsdl:input name="getInfoProduit">
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="getInfoProduitResponse">
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getTypeProduit">
    <soap:operation soapAction="" style="document"/>
    <wsdl:input name="getTypeProduit">
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="getTypeProduitResponse">
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="smsWs">
    <wsdl:port binding="tns:smsWsSoapBinding" name="smsWSImplPort">
    <soap:address location="http://localhost:8080/sms-api/services/sms"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    comme vous voyez je n'ai pas la structure de mes objets entrée et sortie dans le wsdl !!!
    Est ce qu'il y a quelque chose qui manque dans mon code ?
    si c'est normal, comment appeler mon web service ?

    Merci beaucoup.

  3. #3
    Membre régulier Avatar de kodo
    Profil pro
    Chef de projet technique
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet technique

    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 92
    Points
    92
    Par défaut
    Bonjour,
    Je partage avec vous la solution que j'ai fait pour régler ce problème de wsdl qui est : le non affichage de la structure de mes objets request et response dans le wsdl principal.
    si vous remarquez, le wsdl que j'ai partagé, contient une balise wsdl:import, en fait cela vient du fait que mon interface de web service et son implémentation ne sont pas dans le même package.

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

Discussions similaires

  1. Paramètres d'un web service
    Par ebenmous dans le forum Services Web
    Réponses: 4
    Dernier message: 19/05/2011, 10h18
  2. Appel d'un objet remoting à partir d'un web service
    Par Bal1n dans le forum Services Web
    Réponses: 2
    Dernier message: 02/08/2010, 16h54
  3. [CR 2008] Invite sur paramètres d'un Web Service
    Par Farfui dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 18/03/2010, 10h25
  4. [Web Services] Passer un objet comme entrée du client web service
    Par bel09 dans le forum Spring
    Réponses: 19
    Dernier message: 04/06/2009, 15h12
  5. [jax ws] consommer un objet complex d'une methode web service
    Par cisnake dans le forum Services Web
    Réponses: 3
    Dernier message: 05/06/2008, 07h52

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