Web Service WSDL et Apache CXF

magicbo 2 Messages postés mercredi 27 juillet 2016Date d'inscription 28 juillet 2016 Dernière intervention - 27 juil. 2016 à 13:34 - Dernière réponse : magicbo 2 Messages postés mercredi 27 juillet 2016Date d'inscription 28 juillet 2016 Dernière intervention
- 28 juil. 2016 à 08:53
Bonjour,
Je fais appel à vous car j'aurai besoin de savoir comment fonctionne Apache cxf et les fichier WSDL.
J'ai beaucoup chercher d'exemple simple ou de cours mais rien de bien concret.
J'ai l'impression qu'il y a des commandes à lancer de type :
c:\programs\apache-cxf-2.7.10\bin\wsdl2java.bat -frontend jaxws21 –p etc etc

Qu"es ce que permet l'outil "xjc" du package JAXB ? Type de commande
C:\Programs\jaxb-ri-2.2.7\bin\xjc -p fr.bla.bla.xml test.xsd

Enfin voila je commance et j'ai beaucoup de question.
Si quelqu'un a un exemple ou un cours, je suis vraiment preneur.

Merci de m'avoir lu et d'avoir pris du temps.
Afficher la suite 

Votre réponse

2 réponses

KX 15785 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 21 octobre 2018 Dernière intervention - 27 juil. 2016 à 20:21
0
Merci
Bonjour,

Apache CXF est une implémentation de JAX-WS (entre autre) mais il y en a eu plusieurs versions et il serait peut-être intéressant de considérer directement les plus récentes (dans les commandes que tu montres tu as CXF 2.7.10, sachant que la dernière c'est la 3.1.4)

Si tu as Maven, et si tu ne l'as pas je t'invites à t'y intéresser (cf. Débuter avec Maven), tu peux télécharger un code d'exemple comme ceci :

mvn archetype:generate -DarchetypeGroupId=org.apache.cxf.archetype -DarchetypeArtifactId=cxf-jaxws-javafirst -DgroupId=demo.jaxws.cxf -DartifactId=demo-cxf -DinteractiveMode=false

Pour compiler et démarrer l'exemple tu fais
mvn clean install tomcat:run-war
ce qui lance un serveur Tomcat sur http://localhost:8080/demo-cxf

Au niveau du code rien de compliqué, il n'y a que deux fichiers :

package demo.jaxws.cxf;

import javax.jws.WebService;

@WebService
public interface HelloWorld {
    String sayHi(String text);
}

package demo.jaxws.cxf;

import javax.jws.WebService;

@WebService(endpointInterface = "demo.jaxws.cxf.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

    public String sayHi(String text) {
        return "Hello " + text;
    }
}

Donc si tu interroges le service http://localhost:8080/demo-cxf/HelloWorld?wsdl (avec SoapUI par exemple), cela donnes une requête :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cxf="http://cxf.jaxws.demo/">
   <soapenv:Header/>
   <soapenv:Body>
      <cxf:sayHi>
         <arg0>magicbo</arg0>
      </cxf:sayHi>
   </soapenv:Body>
</soapenv:Envelope>

Et sa réponse (correspondant au code Java) :

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:sayHiResponse xmlns:ns2="http://cxf.jaxws.demo/">
         <return>Hello magicbo</return>
      </ns2:sayHiResponse>
   </soap:Body>
</soap:Envelope>

Je n'ai peut-être pas complètement répondu à ta question et tu t'en poses peut-être encore plus maintenant, mais ça te fait un QuickStart...
Commenter la réponse de KX
magicbo 2 Messages postés mercredi 27 juillet 2016Date d'inscription 28 juillet 2016 Dernière intervention - 28 juil. 2016 à 08:53
0
Merci
Bonjour,


Je te remercie je vais regarder tout ca et reviens vers toi si j'ai des questions.

Encore merci
Commenter la réponse de magicbo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.