La génération Java à partir de WSDL pour une utilisation sur Android avec ksoap2-android client SOAP?
- Je accès à un existant webservice SOAP à partir d'une application Android. J'ai été fournis certains fichiers WSDL décrivant le webservice. La lecture de certains d'autres réponses ici DONC, il semble ksoap2-android est la voie à suivre, à l'égard de laquelle le client SOAP à utiliser.
La prochaine question est alors comment générer les classes Java nécessaires à partir les fichiers WSDL, et c'est là que je suis venue jusqu'court. Aussi loin que je peux voir, il y a les options suivantes:
J'ai d'abord essayé #1, avec la AXIS2 plugin eclipse pour wsdl2code générateur. L'assistant n'a réussi à générer beaucoup de code Java, cependant il a aussi changé mon projet android à un certain genre de projet webservice, et je n'ai jamais été en mesure d'obtenir tout ce qui a été généré à la compilation, encore moins de travail avec ksoap2-android. Quelqu'un a du succès avec cette?
Je ne suis pas en mesure d'exécuter wsdl2ksoap avec succès, comme il semble exiger l'exécution d'un service web, et tout ce que j'ai à l'actuel point dans le temps est fichiers WSDL. De même, à la lecture de la page web, il semble être un projet dans ses phases initiales, et pas vraiment prêt pour le prime time.
JAX-WS wsimport je n'ai pas eu la chance d'essayer encore. Cependant, je ne suis pas sûr si ce qu'il génère la volonté de travailler avec ksoap2-android?
Question: Comment puis-je générer des fichiers Java à partir des fichiers WSDL, pour une utilisation sur Android avec ksoap2-android client SOAP en bibliothèque?
Merci beaucoup à l'avance.
(PS: Oui, le choix est le SAVON, il est sous-optimal pour Android utiliser, mais je ne peut pas changer.)
- Avez-vous réussi générant des fichiers à partir de WSDL pour android?
- À la fin, nous avons converti les fichiers WSDL à l'aide de AXIS2, puis a écrit un tas de script personnalisé de se déshabiller et de transformer les fichiers java générés à quelque chose qui va s'appuyer sur android à l'aide de ksoap2-android bibliothèque. Très hackish, et les besoins des tonnes de main-d'œuvre pour l'exécuter. Malheureusement. Si vous trouvez une meilleure façon de faire, s'il vous plaît laissez-moi savoir. 🙂
- Merci à vous, assurez-vous si je trouve quelque chose je vais le partager.. 🙂
- En fait maintenant, je suis en mesure d'obtenir les classes dans l'éclipse de la conversion de l'url du wsdl, à l'aide de l'éclipse webservice client dans le menu projet.
- j'ai essayé d'utiliser l'éclipse menu convertir, mais l'utilisation de certaines classes que Android n'avez pas. Avez-vous utilisé dans un Projet Android?
- J'ai trop face à la même question une certaine incohérence erreur dans la classe générée fichiers lors de l'utilisation d'eclipse pour convertir. J'utilise donc le wsdl2code générateur. Il fonctionne très bien.
- L'espoir est à venir bientôt. Nous travaillons sur un générateur de code pour Android qui utilise le ksoap de la bibliothèque. Pour l'instant il fonctionne à l'encontre des services WCF et nous avons écrit un facile d'utiliser le plugin Eclipse + touches de raccourci qui permet de facilement rafraîchissant. Nous avons pas eu de problèmes avec elle jusqu'à présent et il permet d'économiser des heures et des heures d'écriture ksoap classes
- toutes les mises à jour sur ce point? tous les conseils que vous pouvez donner?
- Non, désolé, il semble être actuellement un noir ensemble. Nous sommes à l'aide de certains d'horreur de jetés ensemble de scripts pour générer de code java qui est au travail pour nous, mais il n'en est rien, utile en général. Regardez quelques-unes des nouvelles réponses peut-être, mais je ne serais pas obtenir mes espoirs vers le haut.
- je reçois problème, lors de l'obtention d'en-tête soap dans android: stackoverflow.com/questions/23284640/...
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé cet outil pour générer automatiquement wsdl pour android code,
http://www.wsdl2code.com/example.aspx
Voici le code:
J'ai eu la même situation (je n'avais que fichier wsdl sans travail webservice). J'ai utilisé
http://easywsdl.com/
pour générer des classes pour android sans aucun problème. Cet outil utilise ksoap de la bibliothèque. La grande chose avec cet outil, c'est qu'il prend en charge WCF extensions et types de données de type contrat avec ' IsReference attribut ou le Guid.
Ma conclusion après un peu de recherche est qu'il n'y est pas (mature) outil disponible, malheureusement. Ni AXIS2 ou JAX-WS travail sur Android, et WSDL2ksoap est tout simplement trop immatures pour toute utilisation réelle.
Cependant, il est propriétaire d'un outil appelé wsclient++ que va faire le travail très bien. (Lire la mise à jour ci-dessous, lorsqu'il est mis à l'utilisation réelle, il ne tient pas la distance à tous.) Il n'utilise pas la ksoap2-client android bibliothèque, il a son propre.
La bibliothèque client est un peu brut comme il a une dépendance matérielle sur le transport http, de décisions (unité) de tester un peu compliqué. Mais elle peut être modifiée très facilement pour permettre DI, que la source est disponible dans les distribué fichier jar.
Le wsdl pour java générateur fonctionne cependant tout simplement parfait, et nous permettra d'économiser des tonnes de temps.
Mise à jour
Après avoir travaillé avec
wsclient++
pendant un certain temps, il est clair que les classes générées sont vraiment brut, et de ne pas traiter les cas d'erreur du tout. (Chaque méthode déclarethrows Exception
).Nous ne sommes plus à l'aide de wsclient++, et je ne recommanderais pas à personne de l'utiliser!
Nous n'avons pas vraiment trouvé d'alternative de travail, malheureusement. :/
À la fin, nous avons converti nos fichiers WSDL à l'aide de AXIS2, puis a écrit un tas de script personnalisé de se déshabiller et de transformer les fichiers java générés à quelque chose qui va s'appuyer sur android à l'aide de ksoap2-android bibliothèque. Très hackish, et les besoins des tonnes de main-d'œuvre pour l'exécuter. Malheureusement. Si vous trouvez une meilleure façon, ou l'on vient, s'il vous plaît fournir une nouvelle réponse.
J'ai utilisé pour l'iPhone trop certaines classes auto-générées je voulais voir ici aussi.
wsdl2code est l'un de semblable à ce que j'ai utilisé à l'iPhone. Donner une url avec le fichier wsdl, vous obtiendrez quelques classes à télécharger. Pour moi la partie la plus difficile c'est de télécharger les pièces requises. Il a fallu plus de 2 minutes de recherche 🙂
ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar
nécessaire pour télécharger ad glisser-déposer à l'ADT ( Eclipse) . C'est super facile, surtout si vous avez utilisé l'homologue de l'iPhone. - un outil similaire que j'ai utilisé.Cependant dans mon cas, je ne suis pas du tout satisfait de la solution, parce que je vois que je suis à l'aide de canon, un ensemble de canons à tir d'un moineau. Dans mon cas, il doit être utilisé un HTTP Post et de ne pas y compris les dépendances à d'autres bibliothèques.
Pour être honnête, je ne m'inquiète pas trop, car une fois que le serveur pense que nous avons illimité de puissance de la batterie et le plan de données illimité, que je ferme mes yeux et je ne se soucient pas de marshaling-désordonnancement frais généraux, où l'utilisation de la CPU ( batterie ) augmenter le volume de données transmis sur le réseau.
Dans le pire des cas, il devrait être un JSON + HTTP POST, pas de SAVON pour les mobiles...
Je suggère de parler à côté serveur les gars et les expliquer pour qu'ils pourquoi il ne sera pas bon si ils n'2 cliquez sur assistants et de nous faire d'autres, cliquez sur formulaires pour obtenir le code généré. Au moins tant que la demande n'est pas énorme, même que devrait être le budget pour optimiser pour les mobiles un peu interfaces des implémentations.
J'utilise Apache CXF outil pour créer des dto, et j'ai écrit une classe pour effectuer une base unmarshalling basé sur le nom des éléments
Un peu en retard, mais il est un ksoap2 stub generator en cours de développement, et j'ai utilisé avec succès pour créer les talons.
http://ksoap2-stub-gen.sourceforge.net/
Aussi que quelqu'un fait disponibles comme un service en ligne (c'est à dire que vous donnez à votre WSDL de l'URL et le service sera de retour un fichier zip contenant les talons).
http://www.davidgouveia.net/2011/04/online-stub-generator-for-android-applications-using-ksoap2/