SAVON d'ERREUR: Analyse d'un WSDL: impossible de trouver le <définitions> dans
J'ai eu du mal avec ce pour un certain temps maintenant et a finalement cédé à demander de l'aide.
Donc voici mon problème :
Je suis en train de consommer un webservice SOAP à partir d'un serveur distant, le fichier wsdl est situé ici http://ecolinthcm.pi-asp.de/logaserver/services/UsersService?wsdl
J'ai été en contact avec les développeurs de là, mais ils continuent de me dire qu'il fonctionne très bien donc ils ne sont pas d'une grande aide...
Je suis en utilisant ce petit morceau de code pour pousser l'ours voir si il est vivant :
$WSDL = "http://ecolinthcm.pi-asp.de/logaserver/services/UsersService?wsdl";
//the file_get_contents methods doesn't change the end result unfortunately
//$data = file_get_contents($WSDL);
//file_put_contents('./wsdl.xml',$data);
//$WSDL = './wsdl.xml';
$opts = array(
'http'=>array(
'user_agent' => 'PHPSoapClient'
)
);
$context = stream_context_create($opts);
$service = new SoapClient($WSDL,array('stream_context' => $context, 'cache_wsdl' => WSDL_CACHE_NONE));
$result = $service->ErmUserBean (array("UserID","Password","TargetUserID"));
print '<pre>';
var_dump($result);
print '</pre>';
Comme dit dans le titre je reçois ce message en retour :
Fatal error: Uncaught exception de type soapfault: [WSDL] SAVON d'ERREUR: Analyse d'un WSDL: impossible de trouver le < définitions > dans "fichier WSDL URI" dans C:\Users\username\Documents\EasyPHP-DevServer-14.1VC11\data\localweb\projects\API\index.php:30 Stack trace: #0 C:\Users\username\Documents\EasyPHP-DevServer-14.1VC11\data\localweb\projects\API\index.php(30): SoapClient->SoapClient('fichier WSDL URI', Array) #1 {principal} jeté dans C:\Users\username\Documents\EasyPHP-DevServer-14.1VC11\data\localweb\projects\API\index.php sur la ligne de 30
J'ai lu la plupart des post à ce sujet des erreurs et donc essayé beaucoup de variation dans ma requête SOAP. J'ai aussi édité mon php.fichier ini de sorte que la ligne
extension=php_openssl.dll
apparaît sans le ";" (commentaire) avant que j'ai pu lire ici.
OriginalL'auteur Yvann ARGENTIN | 2016-06-16
Vous devez vous connecter pour publier un commentaire.
Le message d'erreur que vous obtenez est correct parce que le WSDL lien est invalide. Vous pouvez le télécharger et de le donner à un document WSDL du programme de validation (par exemple,https://www.wsdl-analyzer.com/) et vous verrez qu'elle n'est pas valide et échoue avec un même message de validation.
Le WSDL est pas valide, car certains espaces de noms sont faux. Par exemple, l'espace de noms du schéma WSDL n'est pas
https://schemas.xmlsoap.org/wsdl/
et il n'est nihttps://www.w3.org/2001/XMLSchema
l'espace de noms XML schéma. Les bons sont àhttp://
pashttps://
.Je fixe les espaces de noms et téléchargé valide d'un fichier WSDL ici: http://filebin.ca/2lByBlPAOvCu/ChangedUsersService.xml. Vous pouvez le comparer avec le fichier d'origine que j'ai sauvé ici: http://filebin.ca/2lBxfIDsyDas/OriginalUsersService.xml et de voir les différences.
Essayez d'utiliser mon fichier WSDL. Le nourrir à l'aide en ligne du programme de validation et de votre code et de voir si cela fonctionne.
https://ecolinthcm.pi-asp.de/logaserver/services/UsersService
au lieu dehttp://ecolinthcm.pi-asp.de/logaserver/services/UsersService
)J'utilise wamp sous windows, si j'essaie d'obtenir de l'arbre des catégories de mon erreur: snag.gy/psFcBi.jpg et mon code : justpaste.il/6bfrw comment puis-je résoudre l'erreur?
ce n'
http://192.168.1.89/abc/api/v2_soap/?wsdl
retour? L'ouvrir dans un onglet de votre navigateur ou avec cURL à partir d'une invite de commandes de la console. Vous pouvez également rechercher cette erreur et de voir si des réponses comme celles-ci aident en aucune manière: stackoverflow.com/questions/21861077/...192.168.1.89/abc/api/v2_soap/?wsdl de retour : snag.gy/eZI0iB.jpg
Je suis nouveau à l'API, comment puis-je résoudre ce problème?
OriginalL'auteur Bogdan