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

Spring Java Discussion :

Client Spring ws


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut Client Spring ws
    Bonjour;
    j'essaye de créer un client Sring ws je suis le tuto sur developpez.com et j'aimerai bien qu'on m'explique qqchoz
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
    
    // Chargement d'une requete stockée dans un fichier
    Resource resource = new ClassPathResource("be/hikage/spring/ws/client/traductionRequest.xml");
     
    // Création d'un StreamSource, nécessaire pour l'utilisation de WebServiceTemplate
    StreamSource source = new StreamSource(resource.getInputStream());
    
    // Création d'un StreamDestination, ici redirigé vers System.out
    StreamResult result = new StreamResult(System.out);
    
    
    // Appel au service
    webServiceTemplate.sendSourceAndReceiveToResult("http://localhost:9090/traductionService/", source, result);
    A quoi correspond le chemin be/hikage/spring/ws/client/traductionRequest.xml

    Merciii

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

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

    Le fichier traductionRequest.xml est un fichier xml contenant un exemple de requête ( de type <trad:TraductionRequest /> ).

    ClassPathResource représente une resource dans le classpath, et be/hikage/spring/ws/client/ signifie que la resource est dans le package be.hikage.spring.ws.client
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut
    Citation Envoyé par Hikage Voir le message
    Bonjour,

    Le fichier traductionRequest.xml est un fichier xml contenant un exemple de requête ( de type <trad:TraductionRequest /> ).

    ClassPathResource représente une resource dans le classpath, et be/hikage/spring/ws/client/ signifie que la resource est dans le package be.hikage.spring.ws.client
    Merci Hikage, c ce ke j'avais compris.
    Mais la g vraiment besoin de ton aide, g developpé plusieurs services spring ws, j'insère des utilisateurs dans la base, j'affiche les utilisateurs dela base, je recherche un utilisateur, bref tout ça fonctionne mais avec un simulateur de ckient.
    là je viens de lire ton tuto la partie
    Dans cet exemple, la source de la requête est stockée dans un fichier, mais en pratique, elle devrait être créée dynamiquement à partir d'informations récoltées via une interface graphique.
    Pareillement, ici le résultat est envoyé vers la sortie standard, mais devrait être récupéré pour être traité.
    c'est exactement ce que je dois faire recolter les info via une interface graphique mais je c pas comment procéder.

    j'ai essayé de créer une classe pr implémenter le client
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    package client;
    import java.io.IOException;
     
     
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
     
    import org.springframework.core.io.ClassPathResource;
    import org.springframework.core.io.Resource;
     
    import org.springframework.ws.client.core.WebServiceTemplate;
     
     
    public class WebServiceClient {
     
     
        Resource resource = new ClassPathResource("/client/RechercheRequest.xml");
     
     
        private final WebServiceTemplate webServiceTemplate = new WebServiceTemplate(); 
     
     
     
    //    StreamSource source = new StreamSource(resource.getInputStream());
    //    StreamResult result = new StreamResult(System.out);
     
        public void simpleSendAndReceive() throws IOException {
            StreamSource source = new StreamSource(resource.getInputStream());
            System.out.println(source.getInputStream());
            StreamResult result = new StreamResult(System.out);
            webServiceTemplate.sendSourceAndReceiveToResult("http://localhost:8080/spring-wsTest/rechercherLangueService/",source, result);
        }
     
       public static void main(String[] args) throws IOException {
     
    	   WebServiceClient webServiceClient =new WebServiceClient();
    	   webServiceClient.simpleSendAndReceive();
     
    	}
     
     
    }
    sachant que Recherche.xml se trouve sous le package client et voici son contenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <CVRequest xmlns="http://com.hr.ws/schema/rechercheL">
        <CV>
            <LangueRech>F</LangueRech>
         </CV>
     
    </CVRequest>
    également mon fichier xsd
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
     <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:schema="http://com.hr.ws/schema/rechercheL" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://com.hr.ws/schema/rechercheL">
     <wsdl:types>
     <xs:schema xmlns:rechercheL="http://com.hr.ws/schema/rechercheL" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://com.hr.ws/schema/rechercheL">
      <xs:element name="CVRequest" type="rechercheL:CVRequestType" /> 
      <xs:element name="CVResponse" type="rechercheL:CVResponseType" /> 
     <xs:complexType name="CVRequestType">
     <xs:sequence>
      <xs:element name="LangueRech" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
     <xs:complexType name="CVResponseType">
     <xs:sequence>
      <xs:element name="listCV" type="rechercheL:listCVType" /> 
      </xs:sequence>
      </xs:complexType>
     <xs:complexType name="listCVType">
     <xs:sequence>
      <xs:element name="CIN" type="xs:string" /> 
      <xs:element name="email" type="xs:string" /> 
      <xs:element name="nom" type="xs:string" /> 
      <xs:element name="prenom" type="xs:string" /> 
      <xs:element name="poste" type="xs:string" /> 
      <xs:element name="listLangue" type="rechercheL:ListLangueType" /> 
      <xs:element name="listFormation" type="rechercheL:ListFormationType" /> 
      <xs:element name="listExperiencePro" type="rechercheL:listExperienceProType" /> 
      </xs:sequence>
      </xs:complexType>
     <xs:complexType name="ListLangueType">
     <xs:sequence>
      <xs:element name="Langues" type="rechercheL:langueType" /> 
      </xs:sequence>
      </xs:complexType>
     <xs:complexType name="langueType">
     <xs:sequence>
      <xs:element name="Langue" type="xs:string" /> 
      <xs:element name="Niveau" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
     <!--  Ajout des attributs de la liste Formation 
      --> 
     <xs:complexType name="ListFormationType">
     <xs:sequence>
      <xs:element name="formation" type="rechercheL:FormationType" /> 
      </xs:sequence>
      </xs:complexType>
     <xs:complexType name="FormationType">
     <xs:sequence>
      <xs:element name="dateDiplome" type="xs:string" /> 
      <xs:element name="typeDiplome" type="xs:string" /> 
      <xs:element name="codeEcole" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
     <!--  Ajout des attributs de la liste Experience professionelle 
      --> 
     <xs:complexType name="listExperienceProType">
     <xs:sequence>
      <xs:element name="experiencePro" type="rechercheL:experienceProType" /> 
      </xs:sequence>
      </xs:complexType>
     <xs:complexType name="experienceProType">
     <xs:sequence>
      <xs:element name="NomPoste" type="xs:string" /> 
      <xs:element name="NomEntreprise" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:schema>
      </wsdl:types>
     <wsdl:message name="CVResponse">
      <wsdl:part element="schema:CVResponse" name="CVResponse" /> 
      </wsdl:message>
     <wsdl:message name="CVRequest">
      <wsdl:part element="schema:CVRequest" name="CVRequest" /> 
      </wsdl:message>
     <wsdl:portType name="portRechercheLangue">
     <wsdl:operation name="CV">
      <wsdl:input message="schema:CVRequest" name="CVRequest" /> 
      <wsdl:output message="schema:CVResponse" name="CVResponse" /> 
      </wsdl:operation>
      </wsdl:portType>
     <wsdl:binding name="portRechercheLangueBinding" type="schema:portRechercheLangue">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
     <wsdl:operation name="CV">
      <soap:operation soapAction="" /> 
     <wsdl:input name="CVRequest">
      <soap:body use="literal" /> 
      </wsdl:input>
     <wsdl:output name="CVResponse">
      <soap:body use="literal" /> 
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
     <wsdl:service name="portRechercheLangueService">
     <wsdl:port binding="schema:portRechercheLangueBinding" name="portRechercheLanguePort">
      <soap:address location="http://localhost:8080/spring-wsTest/rechercherLangueService/" /> 
      </wsdl:port>
      </wsdl:service>
    </wsdl:definitions>
    mais ça ne marche pas.
    en fait je sais pas comment faire pour integrer une interface graphique.

    STP est ce que tu peux maider un peu et mindiquer els etapes à faire??

  4. #4
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Ca ne marche pas
    Mais encore ?
    Explique un peu le problème car sans savoir ce qu'il se passe, les erreurs ou les log je ne saurais pas bcp t'aider
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut
    Citation Envoyé par Hikage Voir le message
    Mais encore ?
    Explique un peu le problème car sans savoir ce qu'il se passe, les erreurs ou les log je ne saurais pas bcp t'aider
    g d'abord le log (voir log1.gif)
    ensuite ya rien, il accède à mon endpoint mais il n'affiche pa le resultat dans la console (log.gif)
    en fait je crois que c du a mon endpoint, par ce que le code que j'ai mis c pour récupérer la variable languerecherché depuis le fichier xsd.
    voici mon endpoint
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    package com.hr.ws;
     
    import java.util.List;
     
    import org.jdom.Element;
    import org.jdom.Namespace;
    import org.jdom.xpath.XPath;
    import org.springframework.ws.server.endpoint.AbstractJDomPayloadEndpoint;
    import com.hr.service.RechercherLangueService;
    import com.hr.service.UserBean;
     
    public class RechercherLangueEndpoint extends AbstractJDomPayloadEndpoint {
     
     
    	RechercherLangueService rechercherlangueService;
     
    	public RechercherLangueEndpoint(RechercherLangueService rechercherlangueService){
     
     
    		this.rechercherlangueService=rechercherlangueService;
    	}
     
     
    	protected Element invokeInternal(Element request) throws Exception {
    		Namespace namespace = Namespace.getNamespace("rechercheL", "http://com.hr.ws/schema/rechercheL");
     
    		XPath langueRechExpression=XPath.newInstance("//rechercheL:CVRequest/rechercheL:LangueRech");
    		langueRechExpression.addNamespace(namespace);
     
     
    		String langueRech=langueRechExpression.valueOf(request);
    		System.out.println("lanngues");
    		System.out.println(langueRech);
     
     
    		List<UserBean> listUser=rechercherlangueService.RechercherLangue(langueRech);
     
     
    		Element root = new Element("CVResponse", namespace);
    		Element listCV=new Element("listCV",namespace);
     
     
     
    		//System.out.println(listUser.size());
    /*****************************Boucle affichant la liste des user************************************/
    		for(int i=0;i<listUser.size();i++){ 
     
    			Element CV=new Element("CV",namespace);
    			Element CIN = new Element("CIN", namespace);
    			Element email = new Element("email", namespace);
    			Element nom=new Element("nom",namespace);
    			Element prenom=new Element("prenom",namespace);
    			Element postRech=new Element("poste",namespace);
    			Element listLangue = new Element("listLangue", namespace);
    			Element listFormation=new Element("listFormation",namespace);
    			Element listExperiencePro=new Element("listExperiencePro",namespace);
     
    			CIN.setText(listUser.get(i).getCINUSE());
    			email.setText(listUser.get(i).getEMAILUS());
    			nom.setText(listUser.get(i).getNOMUSE());
    			prenom.setText(listUser.get(i).getPRENOM());
    			postRech.setText(listUser.get(i).getPOSRES());
     
    			//System.out.println(listUser.get(i).getListLangue().size());
    			/*****************************Boucle affichant la liste des langues pour chaque user************************************/
    			for(int j=0;j<listUser.get(i).getListLangue().size();j++){ 
     
    				Element langues=new Element("langues", namespace);//
     
    				Element Langue=new Element("Langue",namespace);//
    				Element Niveau=new Element("Niveau",namespace);//
     
    				//System.out.println("FORRRRRR 2");
    				Langue.setText(listUser.get(i).getListLangue().get(j).getCodlan());//
    				Niveau.setText(listUser.get(i).getListLangue().get(j).getLvlang());//
    				//System.out.println("-----------");
    				//System.out.println(listUser.get(i).getListLangue().get(j).getCodlan());
    				//System.out.println(listUser.get(i).getListLangue().get(j).getLvlang());
    				langues.addContent(Langue);
    				langues.addContent(Niveau);
    				listLangue.addContent(langues);
    			}
    			/*****************************Boucle affichant la liste des formations pour chaque user************************************/
    				for(int j=0;j<listUser.get(i).getListFormation().size();j++){ 
     
    				Element formation=new Element("formation", namespace);
     
    				Element dateDiplome=new Element("dateDiplome",namespace);//
    				Element typeDiplome=new Element("typeDiplome",namespace);
    				Element codeEcole=new Element("codeEcole",namespace);
     
    				//System.out.println("FORRRRRR 2");
    				dateDiplome.setText(listUser.get(i).getListFormation().get(j).getDateDiplome());
    				typeDiplome.setText(listUser.get(i).getListFormation().get(j).getTypeDiplome());
    				codeEcole.setText(listUser.get(i).getListFormation().get(j).getCodeEcole());
    				//System.out.println("-----------");
    				//System.out.println(listUser.get(i).getListLangue().get(j).getCodlan());
    				//System.out.println(listUser.get(i).getListLangue().get(j).getLvlang());
    				formation.addContent(dateDiplome);
    				formation.addContent(typeDiplome);
    				formation.addContent(codeEcole);
    				listFormation.addContent(formation);
    			}
    				/*****************************Boucle affichant la liste des experiencePro pour chaque user************************************/
    				for(int j=0;j<listUser.get(i).getListExperiencePro().size();j++){ 
     
    				Element experiencePro=new Element("experiencePro", namespace);
     
    				Element NomPoste=new Element("NomPoste",namespace);
    				Element NomEntreprise=new Element("NomEntreprise",namespace);
     
     
    				//System.out.println("FORRRRRR 2");
    				NomPoste.setText(listUser.get(i).getListExperiencePro().get(j).getPOSTEX());
     
    				NomEntreprise.setText(listUser.get(i).getListExperiencePro().get(j).getSOCIET());
     
    				experiencePro.addContent(NomPoste);
    				experiencePro.addContent(NomEntreprise);
     
    				listExperiencePro.addContent(experiencePro);
    			}
    			CV.addContent(CIN);
    			CV.addContent(email);
    			CV.addContent(nom);
    			CV.addContent(prenom);
    			CV.addContent(postRech);
    			CV.addContent(listLangue);
    			CV.addContent(listFormation);
    			CV.addContent(listExperiencePro);
    			listCV.addContent(CV);
     
     
    		}
     
    		root.addContent(listCV);
     
     
    		return root;
    	}
     
    }
    Images attachées Images attachées   

  6. #6
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Je crois comprendre la source du problème :

    Ta request XPAth : //rechercheL:CVRequest/rechercheL:LangueRech

    -->L'element LangueRech de CVRequest

    Or ton fichier de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <CVRequest xmlns="http://com.hr.ws/schema/rechercheL">
        <CV>
            <LangueRech>F</LangueRech>
         </CV>
        
    </CVRequest>
    Tu as le tag CV en plus, donc la request XPAth ne trouve simplement pas
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

Discussions similaires

  1. WebService CXF avec Spring - Client PHP : Problème encoding
    Par barbu0055 dans le forum Services Web
    Réponses: 1
    Dernier message: 11/01/2010, 11h47
  2. Utiliser le client avec un service web Spring ws
    Par chapy dans le forum Services Web
    Réponses: 4
    Dernier message: 21/05/2009, 11h57
  3. Utilisation de Spring avec un client lourd
    Par speedster dans le forum Spring
    Réponses: 30
    Dernier message: 15/03/2007, 14h23
  4. [Spring MVC] validation.xml coté client
    Par Tail dans le forum Spring Web
    Réponses: 1
    Dernier message: 28/10/2006, 17h46
  5. [RCP] Initialisation Spring Client Riche
    Par tatemilio2 dans le forum Spring
    Réponses: 1
    Dernier message: 19/09/2006, 08h52

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