Je travaille avec une interface SOAP. Le fournisseur d’interface ne parvient pas à obtenir le WSDL complet (longue histoire). Ils m’ont demandé d’utiliser svcutil.exe pour générer tout ce dont j’ai besoin. De ce que je peux dire, svcutil.exe
Ce serait génial si on pouvait juste cracher un WSDL. Ou s’il y a quelque chose que je peux faire à partir de Linux, ce serait génial aussi.
Ai-je des options à partir d’ici, ou dois-je simplement attendre que le fournisseur me reçoive le WSDL.
Je suppose que la question est, étant donné une URL et des instructions pour utiliser svcutil.exe, comment puis-je écrire du code pour utiliser un service SOAP uniquement sous Linux?
Si vous utilisez Linux, vous pouvez le sauvegarder via curl
curl url > service.wsdl
afin d’obtenir un WSDL WeatherForcast
curl http://www.webservicex.net/WeatherForecast.asmx?WSDL > weatherForcast.wsdl
@grantk a déjà démontré la méthode la plus simple: si vous savez où le WSDL est hébergé, vous pouvez simplement récupérer le document en utilisant votre outil de choix.
Mais comme vous l’avez demandé spécifiquement sur l’utilisation de SVCUtil: vous pouvez trouver une boîte Windows, utilisez SVCUtil pour récupérer le WSDL, puis retournez à votre stack Linux (et Java?) Et générez des proxies client à partir de ce WSDL pour appeler le service via votre service Web cadre de choix.
Si le service cible prend en charge WS-MetadataExchange ou XML Web Service Discovery , SVCUtil recherche et télécharge le fichier WSDL pour vous: consultez ce tutoriel sur le site Web MSDN de Microsoft.
À l’aide de l’exemple de service de prévision météo utilisé par @grantk , vous pouvez demander à SVCUtil d’interroger le service et de télécharger les métadonnées comme suit:
svcutil /t:metadata http://www.webservicex.net/WeatherForecast.asmx
(Je suis sûr qu’il existe des outils similaires pour le faire en utilisant WS-MetadataExchange dans le monde Linux, mais mon expérience est avec SVCUtil.)