web-dev-qa-db-fra.com

Comment générer des classes Java à partir d'un fichier WSDL

Je travaille vers une application Android Android. J'ai besoin d'utiliser un service Web. J'ai un fichier wsdl mais je veux le convertir en Java pour que je peut utiliser ses fonctions dans mes programmes Java. Existe-t-il un moyen de convertir un fichier wsdl en Java?

25
Farhan

Oui, vous pouvez utiliser:

plugin Eclipse Wsdl2Java

Avec cela, tout ce dont vous aurez besoin est de fournir le wsdl, et le client qui est les classes Java sera automatiquement généré pour vous.

26
Oscar Gomez

Juste pour générer les classes Java de wsdl pour moi, le meilleur outil est "cxf wsdl2Java". C'est assez simple et facile à utiliser. J'ai trouvé quelques complexités avec certains types de données dans axis2. Mais malheureusement vous ne pouvez pas utiliser ces codes de bout de client dans votre Android parce que l'environnement Android n'autorise pas le nom du package "Java/javax" dans le temps de compilation, sauf si vous renommez le nom du package.

Et dans Android.jar, toutes les sources javax. * Pour la consommation de services Web ne sont pas disponibles. Pour résoudre ces problèmes, j'ai développé ceci WS Client Generation Tool pour Android.

En arrière-plan, il utilise "cxf wsdl2Java" pour générer le bout de client Java pour Android pour vous, et j'ai écrit quelques sources pour consommer le service Web dans d'une manière plus intelligente.

Donnez simplement l'emplacement du fichier wsdl, il vous donnera les sources et une bibliothèque. il vous suffit de mettre les sources et les bibliothèques dans votre projet. et vous pouvez simplement l'appeler de la même manière que nous le faisons dans notre projet d'entreprise, vous n'avez pas besoin de connaître l'action namespace/soap, etc. Par exemple, vous avez un service pour vous connecter, ce que vous devez faire est :

LoginService service = new LoginService ( );
Login login = service.getLoginPort ( );
LoginServiceResponse resp = login.login ( "someUser", "somePass" );

Et c'est entièrement ouvert et gratuit.

12
Asraful Haque

jdk 6 est livré avec wsimport que vous pouvez utiliser pour créer des classes Java à partir d'un WSDL. Il crée également une classe de service.

http://docs.Oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

8
Patrick P

j'ai fondé un excellent outil pour analyser automatiquement et me connecter aux services Web

http://www.wsdl2code.com

http://www.wsdl2code.com/pages/Example.aspx

 SampleService srv1 = new SampleService();
     req = new Request();                     
     req.companyId = "1";
     req.userName = "userName";                                     
     req.password = "pas";
     Response response =    srv1.ServiceSample(req);
5
Bennya

En supposant que vous avez [~ # ~] jaxb [~ ​​# ~] installé Allez dans le répertoire suivant C:\Program Files\jaxb\bin ouvrir la fenêtre de commande ici

> xjc -wsdl http: //localhost/mywsdl/MyDWsdl.wsdl C:\Users\myname\Desktop

C:\Users\myname\Desktop est le dossier de sortie que vous pouvez modifier selon vos préférences

http: //localhost/mywsdl/MyDWsdl.wsdl est le lien vers le WSDL

5
George Otieno

Vous pouvez utiliser le plugin Eclipse comme suggéré précédemment par Oscar. Ou si vous êtes une personne en ligne de commande, vous pouvez utiliser l'outil Apache Axis WSDL2Java à partir de l'invite de commandes. Vous pouvez trouver plus de détails ici http://axis.Apache.org/axis/Java/reference.html#WSDL2JavaReference

4
Vini

Vous pouvez utiliser le WSDL2Java Codegen (ou) Vous pouvez simplement utiliser le 'Web Service/WebServiceClient' Wizard disponible dans l'IDE Eclipse. Ouvrez le IDE et appuyez sur 'Ctrl + N', sélectionnez pour 'Web Service/WebServiceClient', spécifiez l'URL wsdl, le dossier de sortie et sélectionnez Terminer.

Il crée les fichiers source complets dont vous auriez besoin.

2
Anuj Balan

J'ai un service Web WCF assez complexe et j'ai essayé quelques outils différents, mais dans la plupart des cas, je n'ai pas pu me connecter à mon service Web. Enfin, j'ai utilisé celui-ci:

http://easywsdl.com/

Ce n'est qu'un outil qui génère des classes qui fonctionnent sans aucun changement!

2
robocik