A voir également:
- [nusoap] Response not of type text/xml: application/wsdl+xml
- [nusoap] Response not of type text/xml: application/wsdl+xml ✓ - Forum - PHP
- Type= text/css - Articles
- No enclosing instance of type ✓ - Forum - Java
- Cannot use object of type mysqli_result as array ✓ - Forum - PHP
- Object of type 'int' has no len() - Forum - Programmation
9 réponses
Speedred
- Messages postés
- 25
- Date d'inscription
- mercredi 8 mai 2013
- Statut
- Membre
- Dernière intervention
- 19 mars 2014
Problème résolu, cela venait juste du fait que le pc qui exécutai le code n'avait pas internet ...
Gigatrappeur
- Messages postés
- 226
- Date d'inscription
- lundi 6 mai 2013
- Statut
- Membre
- Dernière intervention
- 3 juillet 2014
Bonjour,
Ton message d'erreur, tu l'obtiens à quel moment ? Lors du chargement du WSDL ?
Es-tu sur de l'URL du WSDL ? Es-ce que lorsque tu tape l'URL du WSDL dans ton navigateur, tu obtiens le WSDL ?
Essaye d'appeler le Web Service via SoapUI.
Cordialement,
Gigatrappeur
Ton message d'erreur, tu l'obtiens à quel moment ? Lors du chargement du WSDL ?
Es-tu sur de l'URL du WSDL ? Es-ce que lorsque tu tape l'URL du WSDL dans ton navigateur, tu obtiens le WSDL ?
Essaye d'appeler le Web Service via SoapUI.
Cordialement,
Gigatrappeur
speedred
Bonjour,
Tout d'abord merci de ta réponse rapide.
Je suis quasiment sur que l'erreur arrive lors de l'appel à la méthode call() car si je ne mais pas l'appel a cet méthode le message n'apparait pas. Si l'erreur venait du chargement du WSDL j'aurai une erreur après l'appel du constructeur non ?
Pour ce qui est de l'url, j'en suis sur car le fichier se trouve en local, ceux qui gère le web service ne m'ont pas fournie une url qui renvoie le fichier WSDL mais directement le fichier WSDL ainsi qu'un fichier XSD. Lorsqu'il n'arrive pas a trouver le fichier, j'obtiens un autre message d'erreur qui m'indique qu'il n'arrive pas a trouver le fichier demandé (enfin un message similaire ...) De tout manière qu'il soit en local ou en ligne ne changera pas le fonctionnement ?
Cordialement,
Speedred
Tout d'abord merci de ta réponse rapide.
Je suis quasiment sur que l'erreur arrive lors de l'appel à la méthode call() car si je ne mais pas l'appel a cet méthode le message n'apparait pas. Si l'erreur venait du chargement du WSDL j'aurai une erreur après l'appel du constructeur non ?
Pour ce qui est de l'url, j'en suis sur car le fichier se trouve en local, ceux qui gère le web service ne m'ont pas fournie une url qui renvoie le fichier WSDL mais directement le fichier WSDL ainsi qu'un fichier XSD. Lorsqu'il n'arrive pas a trouver le fichier, j'obtiens un autre message d'erreur qui m'indique qu'il n'arrive pas a trouver le fichier demandé (enfin un message similaire ...) De tout manière qu'il soit en local ou en ligne ne changera pas le fonctionnement ?
Cordialement,
Speedred
Gigatrappeur
- Messages postés
- 226
- Date d'inscription
- lundi 6 mai 2013
- Statut
- Membre
- Dernière intervention
- 3 juillet 2014
Hum...
Si le web service a été modifié et que tu n'a pas eu le WSDL correspondant, ça pose problème. Mais a priori, ce n'est pas le problème ici.
Moi, j'aurais fais un appel comme ceci :
En faite, ça dépend du web service. Il est écrit en Java ? C'est du axis 1 ou 2 ? A moins que ce soit du Javax ?
Vérifie ton niveau de log et passe-le au maximum (si possible).
Ta essayé sur soapUI, parce que l'impression que j'ai est que le web service te retourne autre chose que du xml.
Pour la doc saopclient, rien ne vaut php.net :
https://www.php.net/soapclient
Cordialement,
Gigatrappeur
Si le web service a été modifié et que tu n'a pas eu le WSDL correspondant, ça pose problème. Mais a priori, ce n'est pas le problème ici.
Moi, j'aurais fais un appel comme ceci :
$client->MdBSpieGetInformationPasseport('id', 'mdp');
En faite, ça dépend du web service. Il est écrit en Java ? C'est du axis 1 ou 2 ? A moins que ce soit du Javax ?
Vérifie ton niveau de log et passe-le au maximum (si possible).
Ta essayé sur soapUI, parce que l'impression que j'ai est que le web service te retourne autre chose que du xml.
Pour la doc saopclient, rien ne vaut php.net :
https://www.php.net/soapclient
Cordialement,
Gigatrappeur
speedred
je te remercie.
Pour ce qui ai du langage de programmation du web service, je n'en ai aucune idée :s . Comment je pourrais savoir avec quel langage il a été écrit ?
Je viens de tester l'écriture que tu me conseillé mais cela ne fonctionne pas, il me dit que ce n'est pas une méthode présente dans le classe soapclient().
Et j'ai aussi testé avec soapUI et lorsque de je rentre des informations, même fausses, il me renvoie bien un fichier xml que soapUI arrive a lire, et j'obtiens bien les massage d'erreur que normalement je devrai recevoir .
Donc grâce a toi je peut en conclure que l'erreur ne viens pas du serveur mais bien de moi ou de nusoap ... ( ce qui veut dire aussi que le fichier est correct.).
ps: je viens de m'apercevoir que le fichier qu'il me revoit c'est le fichier WSDL, c'est vraiment bizarre...
ps2: bon grâce a toi j'y vois un peut plus clair, en comparant soapui et ce que envois, je m'aperçoit qu'il y a des différences.
voici l'en-tete de la requete.
Je me rend compte qu'il n'y a pas de "SOAPACTION" et je trouve sa assez bizarre et je ne pense pas que ça soit normal.
Cordialement,
Speedred
Pour ce qui ai du langage de programmation du web service, je n'en ai aucune idée :s . Comment je pourrais savoir avec quel langage il a été écrit ?
Je viens de tester l'écriture que tu me conseillé mais cela ne fonctionne pas, il me dit que ce n'est pas une méthode présente dans le classe soapclient().
Et j'ai aussi testé avec soapUI et lorsque de je rentre des informations, même fausses, il me renvoie bien un fichier xml que soapUI arrive a lire, et j'obtiens bien les massage d'erreur que normalement je devrai recevoir .
Donc grâce a toi je peut en conclure que l'erreur ne viens pas du serveur mais bien de moi ou de nusoap ... ( ce qui veut dire aussi que le fichier est correct.).
ps: je viens de m'apercevoir que le fichier qu'il me revoit c'est le fichier WSDL, c'est vraiment bizarre...
ps2: bon grâce a toi j'y vois un peut plus clair, en comparant soapui et ce que envois, je m'aperçoit qu'il y a des différences.
voici l'en-tete de la requete.
POST /FMBV/soap/wsMdBSpie.wsdl HTTP/1.0 Host: 192.168.1.1:8080 User-Agent: NuSOAP/0.9.5 (1.123) Content-Type: text/xml; charset=utf-8 SOAPAction: "" Content-Length: 625
Je me rend compte qu'il n'y a pas de "SOAPACTION" et je trouve sa assez bizarre et je ne pense pas que ça soit normal.
Cordialement,
Speedred
Gigatrappeur
- Messages postés
- 226
- Date d'inscription
- lundi 6 mai 2013
- Statut
- Membre
- Dernière intervention
- 3 juillet 2014
En effet...
En faite, si j'étais toi, j'utiliserai pas nusoap. Moi, j'aurai utiliser directement l'objet soapclient.
Essaye ce code, peut-être cela t'aidera mieux comprendre le problème.
Pour ce qui est du langage du WS, faut demander avec le(s) personne(s) qui l'a(ont) écrit.
Peut-être quelqu'un d'autre a une idée pour nusoap ?
Cordialement,
Gigatrappeur
En faite, si j'étais toi, j'utiliserai pas nusoap. Moi, j'aurai utiliser directement l'objet soapclient.
Essaye ce code, peut-être cela t'aidera mieux comprendre le problème.
$url_wsdl = 'http://.../'; $options = array('soap_version'=>SOAP_1_1, 'exceptions'=>true, 'trace'=>1, 'cache_wsdl'=>WSDL_CACHE_NONE,'connection_timeout' => 25); $client = new soapclient($url_wsdl, options); echo '<pre>'; print_r($client ->__getFunctions()); // vérification des méthodes echo '</pre>'; $function = 'MdBSpieGetInformationPasseport'; $parametres = array('Identifiant' => 'id', 'MotDePasse' => 'mdp'); try { $client->$function($parametres); } catch (Exception $fault) { $string = "<b>Retour en erreur</b> :<br />"; $string .= "<b>ERROR:</b> ".$fault->faultcode."-".$fault->faultstring."."; $string .= "<br /><b>Trace : </b><br />"; $string .= 'Request : <br/><xmp>'; $string .= $client->__getLastRequest(); $string .= '</xmp>'; $string .= 'Reponse: <br/><xmp>'; $string .= $client->__getLastResponse(); $string .= '</xmp>'; echo $string; }
Pour ce qui est du langage du WS, faut demander avec le(s) personne(s) qui l'a(ont) écrit.
Peut-être quelqu'un d'autre a une idée pour nusoap ?
Cordialement,
Gigatrappeur
speedred
Je te remercie vraiment .
Je pense y voir un peut plus clair, mais malheureusement ce n'ait pas moi qui gère le serveur php et donc je suis obligé d'utilisé nusoap ...
J'ai finalement réussi a mettre le "SOAPAction" mais ça ne change toujours rien .
Je pense y voir un peut plus clair, mais malheureusement ce n'ait pas moi qui gère le serveur php et donc je suis obligé d'utilisé nusoap ...
J'ai finalement réussi a mettre le "SOAPAction" mais ça ne change toujours rien .