web-dev-qa-db-fra.com

Génération d'un XML de requête/réponse à partir d'un WSDL

Existe-t-il un moyen de générer les formats XML Request & Response à partir d'un fichier WSDL uniquement si le service Web n'est pas activé en ce moment. 

SoapUI ne me donne pas la réponse à moins qu'il ne contacte le Webservice avec une demande. Y at-il un autre outil qui peut faire cela?

Je devrais supposer que ces informations sont disponibles - car sans elles - les frameworks de stub client tels que Axis/JAXWS, etc. ne seront pas en mesure de générer des stubs pour générer la requête et interpréter la réponse.

19
user93353

Essayez cet outil en ligne: https://www.wsdl-analyzer.com Il semble être gratuit et fait beaucoup plus que générer du XML pour les demandes et les réponses. Il y a aussi ceci: https://www.oxygenxml.com/xml_editor/wsdl_soap_analyzer.html , qui peut être téléchargé, mais pas gratuitement.

24

J'utilise SOAPUI 5.3.0. Il est également possible de créer une réponse (via wsdl). Vous pouvez même créer un service factice qui répondra lorsque vous envoyez une demande. La procédure est la suivante

  1. Cliquez avec le bouton droit de la souris sur votre projet et sélectionnez l'option Nouveau service fictif, ce qui créera un service fictif. 
  2. Cliquez avec le bouton droit sur le service factice et sélectionnez Nouveau Option d'opération factice qui créera une réponse que vous pourrez utiliser comme modèle.
13

Le moyen le plus simple consiste à utiliser cette extension chrome link , un service Web heureux demandant

7

Parasoft est un outil qui peut le faire. J'ai fait la même chose en utilisant cet outil dans mon ancien lieu de travail. Vous pouvez générer une demande dans Parasoft SOATest et obtenir une réponse dans Parasoft Virtualize. Cela coûte cependant. Cependant, Parasoft Virtualize a maintenant une édition communautaire gratuite à partir de laquelle vous pouvez générer des messages de réponse à partir d’un WSDL. Vous pouvez télécharger à partir de parasoft community edition

4
Samuel Garratt

Cela vous donnera une idée de la structure d'un WSDL et de la manière dont il effectue votre travail. C'est une bonne opportunité d'apprentissage. Cela peut être fait en utilisant soapUI, si vous avez seulement l'URL du WSDL. (J'utilise soapUI 5.2.1) Si vous disposez du fichier WSDL complet sous forme de fichier, vous n'avez même pas besoin de soapUI. Le titre de la question indique "Requête et réponse XML", tandis que le corps de la question indique "Formats XML de requête et réponse", ce que j'interprète comme le schéma de la demande et de la réponse. Quoi qu'il en soit, ce qui suit vous donnera le schéma que vous pouvez utiliser sur XSD2XML pour générer un exemple XML.

  1. Commencez un "Nouveau projet Soap", entrez un nom de projet et un emplacement WSDL; choisissez "Créer des demandes", désélectionnez les autres options et cliquez sur OK.
  2. Sous l'arborescence "Projet" sur le côté gauche, cliquez avec le bouton droit de la souris sur une interface .__ et choisissez "Afficher la visionneuse d'interface".
  3. Sélectionnez l'onglet "Contenu WSDL".
  4. Vous devriez voir le texte WSDL du côté droit; recherchez le bloc commençant par "wsdl: types" ci-dessous, qui est le schéma pour les messages d'entrée et de sortie.
  5. Chaque définition de schéma commence par quelque chose comme <s:element name="GetWeather"> et se termine par </s:element>.
  6. Copiez le bloc dans un éditeur de texte. au-dessus de ce bloc, ajoutez: <?xml version="1.0" encoding="UTF-8"?><s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  7. Sous le bloc de XML copié, ajoutez </s:schema>
  8. Décidez si vous avez besoin de "UTF-16" au lieu de "UTF-8"
  9. Le "s:" et le "xmlns: s" doivent correspondre au bloc que vous avez copié (étape 5)
  10. Enregistrez ce fichier avec l'extension ".xsd"; Si vous avez "XML Copy Editor" ou un outil de ce type (XML Spy, peut-être), vous devriez vérifier que c'est un schéma XML bien formé et valide.
  11. Répétez cette procédure pour tous les éléments "élément" dans le volet droit de soapUI jusqu'à ce que vous atteigniez 
  12. De cette façon, vous obtiendrez des définitions de type que vous pourriez ne pas être intéressé par. Si vous voulez choisir, utilisez ce qui suit method: Parcourez les éléments "wsdl: operation" sous "wsdl: portType" dans le texte WSDL situé sous les définitions de type. Ils auront "wsdl: input" et "wsdl: output". Prenez les noms de message de "wsdl: input" et "wsdl: output". Associez-les à des noms "wsdl: message" qui seront probablement au-dessus des entrées "wsdl: portType" dans le WSDL. Obtenez le nom de l'élément "wsdl: part" dans l'élément "wsdl: message" et recherchez ce nom comme nom d'élément sous "wsdl: types". Ce sera le schéma qui vous intéresse.

Vous pouvez essayer la procédure ci-dessus en utilisant le WSDL à l’adresse http://www.webservicex.com/globalweather.asmx?wsdl

2
MikeC

Puisque vous dites que le service Web n’est pas opérationnel en ce moment, vous pouvez le faire en créant des services factices qui créeront un exemple de format de réponse. 

1
ChanGan

Pour tester votre fichier WSDL, les liens en ligne sont les suivants:

https://wsdlbrowser.com/

https://wsdlanalyzer.com/

0
A_J