FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage interprété(Php, Perl...)


  [PHP/SOAP/Apache] Problème dificile à définir

 




Il y a 29 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP/SOAP/Apache] Problème dificile à définir

n°7153
G r i b o ​u i l l e
House Music
Posté le 29-03-2007 à 10:56:24  profilanswer
 

Yop,
 
je commence à bosser sur un SGBD natif XML, et je veux l'interfacer avec diverses applications via SOAP. Le seul véritable problème c'est que SOAP refuse de fonctionner et j'arrive vraiment pas à savoir pourquoi.
Voilà le code des deux fichiers de test :
 

Code :
  1. <?php
  2. //WebService Client.
  3. require_once("nusoap/nusoap.php" );
  4. // Set the WebService URL
  5. $soapclient = new soapclient("http://localhost/fireb/server.php" );
  6. $retrieved_page = $soapclient->call('query');
  7. print($retrieved_page);
  8. ?>


 

Code :
  1. <?php
  2. // Soap Server.
  3. require_once('nusoap/nusoap.php');
  4. // Create the soap Object
  5. $serv = new soap_server;
  6. // Register a method available for clients
  7. $serv->register('query');
  8. function query(){
  9. return('flop');
  10. }
  11. // Return the results.
  12. $serv->service($HTTP_RAW_POST_DATA);
  13. ?>


 
Si j'execute ma page avec

Code :
  1. root$ php client.php


il s'execute jusqu'au bout mais ne m'affiche pas flop, si je l'execute par apache il s'arrête juste avant flop.
Si j'execute l'autre page avec

Code :
  1. root$ php server.php


il s'execute et me retourne un bout d'XML qui semble tout à fait correct, par contre par Apache il n'affiche strictement rien.  
(il retourne ceci en ligne de commande :

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
  2.   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  3.   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  4.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.   xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
  6. <SOAP-ENV:Body><SOAP-ENV:Fault><faultcode xsi:type="xsd:string">Client</faultcode><faultactor xsi:type="xsd:string"></faultactor><faultstring xsi:type="xsd:string">method &apos;&apos; not defined in service</faultstring><detail xsi:type="xsd:string"></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>


 
J'ai mis à jour Pear et mon PHP est en 5.2.0 avec SOAP activé.
 
Merci pour votre aide :)


Message édité par G r i b o u i l l e le 02-03-2008 à 00:48:25
mood
Google
Posté le 29-03-2007 à 10:56:24  profilanswer
 

n°7154
Trracer
Posté le 30-03-2007 à 10:15:13  profilanswer
 

La réponse est dans la question ;)
 
Il arrive pas à trouver la methode que tu veux executer :
 

Citation :

method &apos;&apos; not defined in service


 
Je connais pas SOAP (trop chiant à mon gout je prefere xmlrpc), mais "$serv->register('query');" me parait faible pour enregistrer une methode sur le serveur.  
Normalement a une methode php on fait correspondre un nom "public". T'as pas oublier un paramètre par hazard ?

n°7155
G r i b o ​u i l l e
House Music
Posté le 30-03-2007 à 13:41:58  profilanswer
 

nop, j'ai pris ça pour tester en fait.
 
Mais si tu veux si j'ai "method not defined" c'est parce-que je lui en transmet pas, j'execute juste server.php sans rien lui demander. C'est normal qu'il me retourne ça...
 
So still broken...


Message édité par G r i b o u i l l e le 02-03-2008 à 00:48:34
n°7156
Trracer
Posté le 30-03-2007 à 14:15:59  profilanswer
 

Ah ouais, j'ai mal lu desolé.
 
Tu as dumpé $HTTP_RAW_POST_DATA pour etre sur que le serveur reçoit bien des données correcte ?
Y'a pas de mode debug dans nusoap ?
tu vois tes requetes dans les logs du serveur web ?

n°7157
G r i b o ​u i l l e
House Music
Posté le 30-03-2007 à 15:23:41  profilanswer
 

Je vais regarder pour les requêtes, y'a bien un mode debug, mais il n'affiche strictement rien non plus :/
Je te dis ça ce soir


---------------
Web Agency : delta (connexion)™
Electro Podcast : white banana
n°7158
G r i b o ​u i l l e
House Music
Posté le 30-03-2007 à 17:21:29  profilanswer
 

Alors effectivement, quand j'appel client.php par Apache je n'ai aucune requette qui arrive sur server.php !
Par contre, quand je l'appel en ligne de commande j'ai bien server.php d'appellé :  

Citation :

62.240.XXX.X - - [30/Mar/2007:17:20:08 +0200] "GET /fireb/client.php HTTP/1.1" 200 279
62.240.XXX.X - - [30/Mar/2007:17:21:22 +0200] "POST /fireb/server.php HTTP/1.0" 200 0


Une idée?
 
On remarque que la page server.php retourne 0 octets
 
Edit: les heures ne collent pas, apparement server est appelé mais asynchrone,
server.php par apache dirctement : 5 octets
server.php via client.php : 0 octets


Message édité par G r i b o u i l l e le 30-03-2007 à 17:25:08

---------------
Web Agency : delta (connexion)™
Electro Podcast : white banana
n°7159
Trracer
Posté le 30-03-2007 à 17:50:08  profilanswer
 

Les erreurs php sont affichées ? dans la config par defaut (prod) elles ne le sont pas, tu peux les faire afficher ou mieux les envoyer dans un fichier de log.  
Parce que hormis un problème d'execution du script je vois pas trop d'où peut provenir le problème. Ton code est exactement le même que JDN ou autre, il a l'air bon...

n°7161
G r i b o ​u i l l e
House Music
Posté le 30-03-2007 à 18:43:31  profilanswer
 

les erreurs php sont en E_ALL...
 
:/


Message édité par G r i b o u i l l e le 02-03-2008 à 00:48:42
n°7162
Trracer
Posté le 30-03-2007 à 19:42:49  profilanswer
 

Nan regarde la ligne display_error (ou un truc dans le genre), j'ai installé php5 y'a pas longtemp et j'ai remarqué que c'etait à false par defaut.

n°7164
G r i b o ​u i l l e
House Music
Posté le 30-03-2007 à 22:16:24  profilanswer
 

Je viens de le faire en ini_set, mais il ne me donne toujours aucune erreur... :/
J'en ai pas non plus dans les logs apache, c'est vraiment bizare que ça plante en cours d'exec...


Message édité par G r i b o u i l l e le 02-03-2008 à 00:48:49
mood
Google
Posté le 30-03-2007 à 22:16:24  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage interprété(Php, Perl...)


  [PHP/SOAP/Apache] Problème dificile à définir

 

Hit Parade