J'ai une erreur lors de l'importation d'une définition WSDL d'un projet ASP.NET version 4 Visual Studio 2010 Express dans SOAPUI 4.5.1
L'URL serait comme
http://localhost:7929/ws/AX.asmx?WSDL
Erreur générée
Error loading [http://localhost:7929/ws/AX.asmx?WSDL]: org.Apache.xmlbeans.XmlException:
org.Apache.xmlbeans.XmlException: error: Unexpected element: TAG_END
Trace d'erreur:
com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.Java:138)
at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.Java:535)
...
Toutes les suggestions les bienvenues!
Le problème est que soapui ne sait pas où trouver le fichier de schéma . Si votre WSDL est déployé sur un serveur, il retournera une URL du fichier xsd à inclure et soapui pourra le trouver ... .
J'ai eu le même problème, après plusieurs heures, j'ai constaté que le problème concernait IPv6.
Lorsque je vais à l'adresse URL du service, je peux voir et valider le fichier WSDL. Il n'y avait pas de problème du tout.
http://localhost/SoapServer.php?wsdl
Mais quand j'ajoute cette URL à SoapUI, cela donne l'erreur Unexpected element: TAG_END
. J'ai trouvé la raison en utilisant cURL, curl http://localhost/SoapServer.php?wsdl
renvoie 404 !!
Si bien compris que mon Apache écoute à la fois IPv4 et IPv6, le navigateur passe à IPv6 et obtient le wsdl mais cURL et SoapUI passent à IPv4 et reçoivent une erreur 404.
J'ai désactivé IPv6 sur Apache en supprimant la ligne Listen [::0]:80
dans le fichier httpd.conf
, le problème a été résolu.
Etes-vous sûr que le service est en cours d’exécution? Lors du débogage de solutions avec plusieurs projets WCF, nous pensons parfois que nous exécutons le projet dans lequel nous travaillons et que ce n’est pas le cas . vous faites face à une erreur 404 lorsque vous entrez l'URL svc dans un navigateur. Cela peut alors être la cause du problème . Dans ce scénario, l'interface utilisateur SOAP échouera si vous essayez d'ajouter ou de créer un nouveau point de terminaison WSDL. Assurez-vous donc que votre solution s'exécute à partir du projet où se trouve le svc cible.