Aller au contenu

SOAP en PHP5 chez OVH


doudy

Sujets conseillés

Bonjour,

Bonjour,

Je dois faire un Webservice pour accéder à ma base de données sur un compte mutualisé OVH (Plan90).

Je pensais utiliser SOAP avec PHP5 car dans phpinfo je peux lire

Soap
Soap Client enabled
Soap Server enabled

J'ai fais un essai sur un serveur localhost, et ça marche bien, mais si le service est sur le serveur OVH, j'ai pas de résultat ...

Alors je me demande si SOAP en PHP5 est possible en mutualisé ?

Sinon quelle autre solution ?

Voici le code de la partie service sur mon compte OVH

<?php
$server = new SoapServer(NULL, array('uri' => 'http://www.monsite.fr/services/reverse.php'));
$server->addFunction('reverse');
$server->handle();

function reverse($string)
{
return utf8_encode(strrev(utf8_decode($string)));
}
?>

et voici la partie cliente qui lance une requête vers le webservice :


<?php
$service = new SoapClient(NULL, array(
'location' => 'http://www.monsite.fr/services/reverse.php',
'uri' => 'http://www.monsite.fr'
));

echo $service->reverse('Yogui').'<br/>';
echo $service->reverse('BrYs').'<br/>';
echo $service->reverse('mathieu');


function html($string)
{
return htmlspecialchars($string, ENT_QUOTES);
}
?>

Donc si je fonctionne sur mon serveur local (localhost) ça marche bien.

Mais depuis OVH: rien ne s'affiche, même pas de code d'erreur.

Merci d'avance pour votre aide. :)

Lien vers le commentaire
Partager sur d’autres sites

Tiens cela m'intéresse beaucoup car je vais avoir exactement le même besoin dès la semaine prochaine...

SOAPI c'est pas plutôt l'API SOAP fournie par OVH pour gérer ses services à distance ? Je ne suis pas sûr que cela résout le problème de doudy. Si j'ai bien compris, c'est son propre serveur SOAP qu'il veut utiliser.

Lien vers le commentaire
Partager sur d’autres sites

Tiens cela m'intéresse beaucoup car je vais avoir exactement le même besoin dès la semaine prochaine...

SOAPI c'est pas plutôt l'API SOAP fournie par OVH pour gérer ses services à distance ? Je ne suis pas sûr que cela résout le problème de doudy. Si j'ai bien compris, c'est son propre serveur SOAP qu'il veut utiliser.

Si j'ai bien compris, le SOAPI d'OVH c'est pour atteindre les propres services d'OVH: noms de domaine , comptes etc ... mais ce n'est pas ce que je veux.

Je voudrais en effet créer mon propre Webservice.

Sur le forum d'OVH je n'ai trouvé aucune info à ce sujet, à part pour leur SOAPI ...

Pour SOAPUI, je ne sais pas ce que c'est ?

Pour l'adresse de mon Webservice: pour l'instant ce n'est qu'un 1er essai assez trivial (voir le code plus haut) à cette adresse , mais ça ne marche pas : cette adresse

Si vous lancez le client avec ce code, rien ne se passe, pas de message d'erreur mais page blanche ...

<?php
$service = new SoapClient(NULL, array(
'location' => 'http://www.monsite.fr/services/reverse.php',
'uri' => 'http://www.monsite.fr'
));

echo $service->reverse('Yogui').'<br/>';
echo $service->reverse('BrYs').'<br/>';
echo $service->reverse('mathieu');


function html($string)
{
return htmlspecialchars($string, ENT_QUOTES);
}
?>

Modifié par doudy
Lien vers le commentaire
Partager sur d’autres sites

SoapUI permet de tester un webservice c'est très pratique et gratuit, mais il faut générer un WSDL (c'est la moindre des choses).

Si vous lancez le client avec ce code, rien ne se passe, pas de message d'erreur mais page blanche ...

Apparemment, ton serveur SOAP a une erreur, donc ça ne peut pas fonctionner, inutile de lancer le client.

Fatal error: Cannot instantiate non-existent class: soapserver in /homez.136/informatzy/www/services/reverse.php on line 2

Désolé pour la question bête, mais tu ne serais pas en php4 ? je ne connais pas le mutualisé OVH, mais il m'étonnerait fort qu'OVH désactive cette fonction sur ses mutualisés.

Lien vers le commentaire
Partager sur d’autres sites

SoapUI permet de tester un webservice c'est très pratique et gratuit, mais il faut générer un WSDL (c'est la moindre des choses).

Apparemment, ton serveur SOAP a une erreur, donc ça ne peut pas fonctionner, inutile de lancer le client.

Fatal error: Cannot instantiate non-existent class: soapserver in /homez.136/informatzy/www/services/reverse.php on line 2

Désolé pour la question bête, mais tu ne serais pas en php4 ? je ne connais pas le mutualisé OVH, mais il m'étonnerait fort qu'OVH désactive cette fonction sur ses mutualisés.

Exacte, PHP Version 4.4.9

donc SOAP n'est géré que par PHP Version 5 , c'est bien cela?

En mettant simplement reverse.php5 au lieu de reverse.php, ça marche !

Pour SoapUI si ça peut aider à développer le WebService je vais l'installer.

MErci pour votre aide

Modifié par doudy
Lien vers le commentaire
Partager sur d’autres sites

Je n'ai jamais fait de PHP4 (ouf ;)) mais les classes SoapServer et SoapClient ne sont pas disponibles pour cette version, je crois que les dev utilisent en général une librairie qui s'appelle nuSOAP, sinon, il doit bien y avoir également quelque chose dans le package PEAR.

Si tu passes en version 5, je te recommande d'utiliser les classes de Zend (ou de faire comme tu fais si ça te suffit), notamment Zend_Soap_AutoDiscover qui va te générer le fichier WSDL, car sinon c'est un peu pénible de se le faire à la main.

Tu as un exemple d'utilisation ici mais il est adapté pour le framework codeIgniter (PHP, c'est quand même la misère à ce niveau quand on voit la facilité avec laquelle on a recours à soap dans d'autres langages, mais on peut dire que Zend a assuré de ce point de vue avec son framework).

Tu ne pourras utiliser soapUI qu'avec un WSDL, si tu veux essayer, en voilà un : http://www.webservicex.net/globalweather.asmx?WSDL

voilà voilà ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...