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 :

Passer un objet comme entrée du client web service


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut Passer un objet comme entrée du client web service
    Bonjour,
    J'ai crée une classe qui récupère les données du formulaire de ma paje jsp sous forme d'un objet.
    Je voudrais savoir si dans mon code client je peux lui passer comme entrée cet objet là?

    Merci de vos réponses

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Quand tu dis, comme entrée, je suppose que tu parle du WebServiceTemplate ?
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Hikage Voir le message
    Quand tu dis, comme entrée, je suppose que tu parle du WebServiceTemplate ?
    Oui je veux dire à l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    webServiceTemplate.sendSourceAndReceiveToResult(URL,source, result);
    source prend l'objet récupéré!!

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Dans le webserviceTemplate tu as divers méthodes du type marshalSendAndReceive.

    Celles-ci permettent d'utiliser un object en entrée, a condition que cet objet fasse partie d'un contexte de marshalling ( JiBx, JAXB ou autres ).
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Bonjour, j'ai regardé un peu qques docs et je pense que je dois utiliser la méthode marshall() pour convertir mon objet java en xml.
    Moi je récupère un objet rempli avec toutes les valeurs dont j'ai besoin mais voilà j'arrive pas exactement à savoir comment utiliser marshall, des fois je retrouve qu'il faut l'introduire dans le endpoint, dans le fichier application-context.xml et dans d'autres juste un traitement comme celà
    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
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;
    import chienp.*;
     
    public class Creer {   
        public static void main( String[] args ) {
            try {
                JAXBContext jc = JAXBContext.newInstance( "chienp" );
                ObjectFactory factory = new ObjectFactory();
                Chien medor = factory.createChien();
                medor.setNom("medor");
                Personne memere = factory.createPersonne();
                memere.setNom("Michu");
                memere.setAdresse("impasse du puit");
                medor.setMaitre(memere);
                medor.setPuces(76);
                Marshaller m = jc.createMarshaller();
                m.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
                m.marshal(medor, System.out);
            } catch( Exception e ) {
                e.printStackTrace();
            }
        }
    }
    Je sais pas exactement comment faire et d'ou viennent les methodes createChien() et createPersonne().
    Si quelqu'un peut m'eclairer ça sera sympa, emrci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    voici mon code 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
    public class WebServiceClient {
     
     
    	public String doRecupBean5(){
     
     
    		Languebean lb = new Languebean();
     
    		FacesContext context = FacesContext.getCurrentInstance();
     
    		//Récupérer un objet lb rempli avec les données saisies a partir du formulaire
    		lb = (Languebean)context.getApplication().createValueBinding("#{langue}").getValue(context);	
     
    		//System.out.println(lb.getCODLAN());
     
    		 String test = "<CVRequest xmlns=\"http://com.hr.ws/schema/rechercheL\"><LangueRech>"+lb.getCODLAN()+"</LangueRech></CVRequest>";
     
     
     
     
    		 System.out.println(test);
     
     
    	     WebServiceTemplate webServiceTemplate = new WebServiceTemplate(); 
     
    	     StreamSource source = new StreamSource(new StringReader(test));
     
    	     StreamResult result = new StreamResult(System.out);
     
    	   webServiceTemplate.sendSourceAndReceiveToResult("http://localhost:8080/spring-wsTest/rechercherLangueService/",source, result);
     
     
    		return "valider";
     
    		}
    je veux modifier mon objet lb en xml et l'envoyer comme source du web service client
    j'ai compris ke mon objet lb doit être de type marshaller, d'abord est ce que c possible ce ke je veux faire? et si c le cas, comment faire, je crois ke ça est faux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JAXBContext context = JAXBContext.newInstance("lb");

  7. #7
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    salut,

    normalement tu as générer ton objectFactory à partir de ton xsd, non?
    le JAXBContext est le context des classes générer de ton xsd et dont l'objectFactory résponsable de la construction des ses objects.
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JAXBContext context = JAXBContext.newInstance(là tu met le nom du package ou sont générer tes objets).

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par aymen83 Voir le message
    salut,

    normalement tu as générer ton objectFactory à partir de ton xsd, non?
    le JAXBContext est le context des classes générer de ton xsd et dont l'objectFactory résponsable de la construction des ses objects.
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JAXBContext context = JAXBContext.newContext(là tu met le nom du package ou sont générer tes objets).
    Non en fait j'ai le code serveur d'un coté, j'ai le code client d'un autre coté(un autre projet) et j'ai les pages jsp (en utilisant JSF), je recupere le contenu du formulaire de la paje jsp à l'aide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Languebean lb = new Languebean();
     
    		FacesContext context = FacesContext.getCurrentInstance();
     
     
    		lb = (Languebean)context.getApplication().createValueBinding("#{langue}").getValue(context);
    le resultat est stocké dans mon objet lb de type langueBean, j'ai essayé d'utiliser ce resultat pour mon code client alors j'ai mis pour tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String test = "<CVRequest xmlns=\"http://com.hr.ws/schema/rechercheL\"><LangueRech>"+lb.getCODLAN()+"</LangueRech></CVRequest>";
    StreamSource source = new StreamSource(new StringReader(test));
    ça a marché il maffiche le resultat mais là je veux pas faire comme ça, je trouve que c pas très logik de faire a chaque fois lb.getAttribut, je me suis demandé si je peux manipuler cet objet lb rempli des données, en le formatant en xml et l'envoyer comme source de la partie cliente! alors on m'a conseillé d'utiliser Marshall mais ej sais pas comemnt l'adapter à mon cas!
    Sinon je n'ai pas généré des classes à partir de mon xsd!! Quand faut il faire ça??

  9. #9
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    j'ai mal compris ta question. En fait, les methodes que createCh.. et createPer... se trouve dans ton objectFactory et c'est générer à partir de xsd par JAXb cedernier va les utiliser pour mashaller et unmarshaller ce deux Object.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par aymen83 Voir le message
    j'ai mal compris ta question. En fait, les methodes que createCh.. et createPer... se trouve dans ton objectFactory et c'est générer à partir de xsd par JAXb cedernier va les utiliser pour mashaller et unmarshaller ce deux Object.
    Oui mais là c un exemple que j'ai trouvé sur un site, j'ai essayé de l'appliquer à mon cas mais moi je n'ai pas généré un objectFactory, c'est pour celà je me demande comment appliquer l'exemple de chien ou personne à mon cas.
    Est ce c'est indispensable de générer l'object factory pour utiliser marshall et unmarshall? et comment le faire?

  11. #11
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    non ce n'est pas indisponsable. En fait tu peux écrire les classes qui représenteront les types que tu as déclaré dans ton xsd. La ObjectFactory est gérerer automatiquement par des outils pour JAXb. D'ailleurs si tu utilise maven2 il existe un plugin xjc que tu peux utiliser.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Re Salut;
    Après une galère j'ai enfin réussi à générer mon object factory et mes classes en utilisant jaxb, mais voilà au début quand j'execute mon main
    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
    package client;
     
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Writer;
     
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;
    import ws.hr.com.schema.recherchel.CVRequestType;
     
    public class TestClient {
     
     
    	    public static void main( String[] args ) {
     
     
    	    	CVRequestType CVR = new CVRequestType();   
    	    	CVR.setLangueRech("francais");
     
     
    	    	Writer writer = null;   
    	    	// Create JAXB context and the marshaller   
    	    	try {   
    	    	JAXBContext context = JAXBContext.newInstance(CVRequestType.class);   
    	    	Marshaller marshaller = context.createMarshaller();   
    	    	marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);   
     
    	    	// Console view   
    	    	marshaller.marshal(CVR, System.out);   
     
    	    	// otherwise file output   
    	    	writer = new FileWriter("TestLangue.xml");   
    	    	marshaller.marshal(CVR, writer);   
     
    	    	} catch (JAXBException e) {   
    	    	e.printStackTrace();   
    	    	} catch (IOException e) {   
    	    	e.printStackTrace();   
    	    	} finally {   
    	    	// Clean resources by closing files   
    	    	try {   
    	    	writer.close();   
    	    	} catch (Exception exp) {   
    	    	}   
     
    	    	}   
    	    	} }
    j'ai une exception de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Incorrectly typed data found for annotation element public abstract javax.xml.bind.annotation.XmlAccessType javax.xml.bind.annotation.XmlAccessorType.value()
    après qques recherches je suis tombé sur ce forum http://www.coderanch.com/t/222880/We...o-jaxws-sample bref j'ai telechargé le JAXB2_20061013.jar, je l'ai executé, j'ai regénéré mes classes et maintenant, j'ai cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Type mismatch: cannot convert from XmlAccessType to AccessType
    , j'ai regardé un peu encore sur google, j'ai vu qu'on parle de jdk1.6, je travaille avec le 1.6 moi aussi mais c tjrs la même erreur.
    Est ce que vous avez une idée sur comment résoudre c eprobleme svp???

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Re;
    Mon problème précédent est résolu, j'avais un probleme dans le classpath;
    maintenant je genere mon fichier xml et tou va bien, alors si j'ai bien compris, pour que mon code client fonctionne correctement, je dois ou bien mettre ce fichier xml généré en etrée du client ou bien j'utilise marshalSendAndRecieve.
    Que fais exactement cette fonction et comment faut'il l'utiliser??

  14. #14
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    voici un simple exemple qui pourrait t'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Object responseObject = getWebServiceTemplate().marshalSendAndReceive(
    				clientRequest, new WebServiceMessageCallback() {
    					public void doWithMessage(WebServiceMessage message)
    							throws IOException {
    						try {
    							((SoapMessage) message).setSoapAction(soapAction);
    							secureWs(message, user);
    						} catch (Exception e) {
    							logger.error("Une Exception s'est produite lors de la creation du header de la requete SOAP");	
    							e.printStackTrace();
    						}
    					}
    				});

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par aymen83 Voir le message
    voici un simple exemple qui pourrait t'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Object responseObject = getWebServiceTemplate().marshalSendAndReceive(
    				clientRequest, new WebServiceMessageCallback() {
    					public void doWithMessage(WebServiceMessage message)
    							throws IOException {
    						try {
    							((SoapMessage) message).setSoapAction(soapAction);
    							secureWs(message, user);
    						} catch (Exception e) {
    							logger.error("Une Exception s'est produite lors de la creation du header de la requete SOAP");	
    							e.printStackTrace();
    						}
    					}
    				});
    clientRequest c'est l'objectFactory crée?? et je voudrais savoir où spécifier l'url du service??

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Voici mon code 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
    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
     
    package client;
    import java.io.IOException;
    import java.io.StringReader;
     
     
    import javax.faces.context.FacesContext;
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
     
    import metier.Languebean;
    import metier.RecupBean;
     
    import org.springframework.core.io.ClassPathResource;
    import org.springframework.core.io.Resource;
     
    import org.springframework.ws.WebServiceMessage;
    import org.springframework.ws.client.core.WebServiceMessageCallback;
    import org.springframework.ws.client.core.WebServiceTemplate;
    import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
    import org.springframework.ws.soap.SoapMessage;
     
    import ws.hr.com.schema.recherchel.CVRequestType;
    import ws.hr.com.schema.recherchel.ObjectFactory;
     
     
    public class WebServiceClient extends WebServiceGatewaySupport {
     
     
    	public String doRecupBean() throws JAXBException{
     
     
    		Languebean lb = new Languebean();
     
    		FacesContext context = FacesContext.getCurrentInstance();
     
    		//Récupérer l'objet lb rempli des pages jsp
    		lb = (Languebean)context.getApplication().createValueBinding("#{langue}").getValue(context);	
     
     
    		/*********Manipulation de mon objectFactory*************/
    		JAXBContext contextJC = JAXBContext.newInstance("ws.hr.com.schema.recherchel"); 
    		Marshaller marshaller = contextJC.createMarshaller(); 
    		ObjectFactory factory=new ObjectFactory(); 
    		CVRequestType CVR=(CVRequestType)(factory.createCVRequestType());
    		CVR.setLangueRech(lb.getCODLAN());
     
    		marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);   
     
    		marshaller.marshal(CVR, System.out); //Affichage du contenu de l'objet CVR
     
     
     
            /*****************************************************************************************/
     
         Object responseObject = getWebServiceTemplate().marshalSendAndReceive(
         				CVR, new WebServiceMessageCallback() {
         					public void doWithMessage(WebServiceMessage message)
         							throws IOException {
         						try {
         							((SoapMessage) message).setSoapAction("");
     
         						} catch (Exception e) {
         							logger.error("Une Exception s'est produite lors de la creation du header de la requete SOAP");	
         							e.printStackTrace();
         						}
         					}
         				});
     
     
    		return "valider";
     
    		}
     
     
     
     
     
     
     
     
    }
    :
    Que faut il mettre dans setSoapAction?
    quand j'execute j'obtiens cette erreur
    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
    java.lang.IllegalStateException: No marshaller registered. Check configuration of WebServiceTemplate.
    	org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:259)
    	org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:252)
    	client.WebServiceClient.doRecupBean5(WebServiceClient.java:72)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	java.lang.reflect.Method.invoke(Unknown Source)
    	org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
    	org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
    	javax.faces.component.UICommand.broadcast(UICommand.java:109)
    	javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
    	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
    	org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
    	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
    	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
    	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)

  17. #17
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    normalement dans ton objectFactory toutes les URL de request que tu demande sont déjà présente donc tu n'as pas à les spécifier.

    dans ton fichier de configuration tu as déclaré un bean pour ton marshaller et ton unmarshaller.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    		<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    		<property name="contextPath" value"ton packge pour l'objectFactory"/>
     
    	</bean>

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par aymen83 Voir le message
    normalement dans ton objectFactory toutes les URL de request que tu demande sont déjà présente donc tu n'as pas à les spécifier.

    dans ton fichier de configuration tu as déclaré un bean pour ton marshaller et ton unmarshaller.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    		<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    		<property name="contextPath" value"ton packge pour l'objectFactory"/>
     
    	</bean>
    Je crois que je fais fausse route alors!! dans la partie client g meme pas de fichier de configuration, j'en ai pas eu besoin! Enfin je crois!j'ai juste faces-config.xml pour mes pages jsp!

  19. #19
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    oui mais tu déclare où tes beans pour ton application. jaxb doit etre déclaré d'une façon ou d'une autre.

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par aymen83 Voir le message
    oui mais tu déclare où tes beans pour ton application. jaxb doit etre déclaré d'une façon ou d'une autre.
    mes beans du coté serveur( les interfaces, les endpoint et les services) sont declaré dans spring-ws-servlet.xml qui se trouve dans un autre projet!!
    Peux tu m'expliquer stp comment ça se passe.
    parce que moi pour la partie cliente, j'ai crée les pages jsp, ensuite g crée une classe client, je recupère les données de mes pages jsp ensuite je les passe en entrée pour le client. j'ai pensé à utiliser marshal, alors j'ai vu qu'il faut que je crée un object factory avec jaxb à partir de mes fichiers xsd( qui se trouvent dans le projet où il ya le code de la partie serveur), je set mon objectFactory avec le bean récupéré de ma page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CVRequestType CVR=(CVRequestType)(factory.createCVRequestType());
    		CVR.setLangueRech(lb.getCODLAN());
    ensuite je génére un fichier xml contennat les donénes qui ont eté saisies de la page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     marshaller.marshal(CVR, new File("src/ws/hr/com/schema/recherchel/out.xml"));
    mnt j'aimerai envoyer ce fichier comme entrée du client mais pas de cetet manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static Resource resource = new ClassPathResource("src/ws/hr/com/schema/recherchel/out.xml");
    je voulais utiliser marshalSendAndRecieve.
    Voilà a quel moment j'aurais du créer mon fichier de config??
    private

Discussions similaires

  1. Passer un objet comme attribut d'une classe
    Par Leduc08 dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 05/04/2011, 11h54
  2. [modelDriven] Passer un objet modèle entre 2 actions
    Par romainw dans le forum Struts 2
    Réponses: 2
    Dernier message: 16/10/2007, 13h33
  3. Créer un client Web Service sous Eclipse et Windows
    Par Lebas dans le forum Services Web
    Réponses: 2
    Dernier message: 28/08/2006, 10h53
  4. client web service
    Par ybennani dans le forum Services Web
    Réponses: 4
    Dernier message: 11/04/2006, 09h50
  5. Client Web Service
    Par caro. dans le forum Services Web
    Réponses: 3
    Dernier message: 08/04/2005, 16h14

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