Web Service WSDL et Apache CXF

magicbo Messages postés 2 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 28 juillet 2016 - 27 juil. 2016 à 13:34
magicbo Messages postés 2 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 28 juillet 2016 - 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.

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
27 juil. 2016 à 20:21
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...
0
magicbo Messages postés 2 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 28 juillet 2016
28 juil. 2016 à 08:53
Bonjour,


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

Encore merci
0
Rejoignez-nous