Bonjour,
J'ai un paramètre de ma méthode web-service de type complexe (exemple objet Homme(nom, prenom, age) ), et je veux dans le soap message j'aurai ces attribues et non pas <homme/>.
est ce possible
Merci
Bonjour,
J'ai un paramètre de ma méthode web-service de type complexe (exemple objet Homme(nom, prenom, age) ), et je veux dans le soap message j'aurai ces attribues et non pas <homme/>.
est ce possible
Merci
plus d'explication:
soit la méthode du web service
dans la requête soap j'obtient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 @WebMethod public void printResult(@WebParam(name = "person") Person person)
alors que moi je veux:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <log:printResult> <!--Optional:--> <person/> </log:printResult>
supposant que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <log:printResult> <!--Optional:--> <person> <name></name> <age></age> </person> </log:printResult>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class Person{ private String name; private int age; ... }![]()
JAX-WS utilise JAXB pour "sérialiser" les objets Java. Il faut donc soit configurer JAX-WS pour qu'il utilise un binding de ton choix, soit annoter ta classe.
Je te laisses consulter la documentation JAX-WS concernant l'utilisation de JAXB et celle de JAXB concernant la "sérialization" (marshalling).
Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
Ceylon : Installation - Concepts de base - Typage - Appels et arguments
ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
Une solution vous convient ? N'oubliez pas le tag
Signature par pitipoisson
merci Nemek,
comment puis-je annoter ma classe?
Utilises le package javax.xml.bind.annotation.
Tu ne devrais pas rencontrer trop de problèmes en ne faisant qu'annoter la classe Personne avec XmlRootElement.
Il faut juste que tu es des getter/setter sur les méthodes que tu veux sérialiser.
Si tu as un WSDL avec un schéma il faudra spécifier les noms et namespace des éléments dans tes annotations JAXB.
Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
Ceylon : Installation - Concepts de base - Typage - Appels et arguments
ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
Une solution vous convient ? N'oubliez pas le tag
Signature par pitipoisson
merci nemek,
c'est très bien avec XmlRootElement, tout est bon.
Qu'est ce que tu veux dire par :
Oui il y a un WSDL dans le projet dans le quel je travailles, mais sans modifier ce wsdl et avec mon classe annoté @webservice et mon bean annoté par @XmlRootElement j'ai pu avoir le soap.Si tu as un WSDL avec un schéma il faudra spécifier les noms et namespace des éléments dans tes annotations JAXB.
sachant que j'ai dans le fichier sun-jaxws.xml ceci :
est ce que je dois changer le wsdl comme tu as dis?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <endpoint name="monservice" implementation="com.work.Monservice" url-pattern="/services/soap/monservice"> </endpoint>
Merci
Dans le WSDL tu peux spécifier un schéma pour le corps du message.
Dans ce cas il faut que le schéma corresponde à ton binding JAXB.
Mais si ça marche c'est bon comme ça![]()
Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
Ceylon : Installation - Concepts de base - Typage - Appels et arguments
ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
Une solution vous convient ? N'oubliez pas le tag
Signature par pitipoisson
oui ça marche mais juste je voulais savoir l'utiliter du fichier wsdl existant dans le projet,
certaint endpoint ont un attribut :
et d’après mes connaissance une fois que tu as creéer le webservice tu peux se supprimer cet attribut du endpoint,
Code : Sélectionner tout - Visualiser dans une fenêtre à part wsdl="WEB-INF/wsdl/MesService.wsdl"
alors pourquoi ces références au fichier wsdl, et l'existence du fichier wsdl sert a quoi dans le projet, sachant que ce fichier est générer automatiquement par le framework, non?
Partager