Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Autres composants
Autres composants Forum de support sur les autres composants de Zend Framework.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/07/2007, 19h38   #1
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 505
Points : 292
Points : 292
Par défaut Xmlrpc de Zend Framework

Bonjour,

je viens de tester

Code :
1
2
3
4
 
require_once 'Zend/XmlRpc/Client.php';
$server = new Zend_XmlRpc_Client('http://framework.zend.com/xmlrpc');
print_r( $server->system->listMethods() );
et j'obtiens l'erreur suivante

Code :
1
2
 
PHP Fatal error:  Call to a member function listMethods() on a non-object in /var/www/Main/_TST_/xmlrpc.php on line 10, referer: <a href="http://192.168.0.10/Main/_TST_/" target="_blank">http://192.168.0.10/Main/_TST_/</a>
est-ce une erreur déjà référencée ou l'exemple ne pointe sur aucun server chez zend ?
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 21h09   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

L'objet "system" n'est pas instancié dans ton objet $server. Vérifie que la classe est correctement instanciée et que tu utilises bien la bonne version de la documentation
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 21h34   #3
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
C'est l'exemple fourni par le site qu'il a lancé
(c'est là : http://framework.zend.com/xmlrpc/help)

J'ai un peu fouillé dans les classes et j'ai trouvé quelque chose qui devrait correspondre avec $server->getIntrospector()->listMethods()
par contre ce n'est pas gagné parce que l'appel de la méthode envoie ce message :
Code XML :
1
2
<?xml version="1.0" encoding="UTF-8"?>
<methodCall><methodName>system.listMethods</methodName></methodCall>
mais la réponse est une page en XHTML donc a mon avis le serveur de test est en vrac en ce moment
déjà que l'exemple de test ne fonctionne pas, essaie peut-être de trouver un autre serveur d'exemple
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 22h37   #4
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 505
Points : 292
Points : 292
oops,

J'ai bien la doc du 1.0. J'utilise le framework directement dézippé à la racine de mon server et sans install... Les appels ne produisent pas d'erreurs. Seul l'appel à listmethod semble poser probleme.
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 23h29   #5
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 505
Points : 292
Points : 292
Quelqu'un a des tutos operant pour le xmlrpc de zf ?
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 00h29   #6
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 505
Points : 292
Points : 292
Je tente de faire fonctionner mon petit service xmlrpc

le server
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<?php
require_once 'Zend/XmlRpc/Server.php';
require_once 'Zend/XmlRpc/Server/Fault.php';
require_once 'Zend/XmlRpc/Server/Cache.php';
require_once 'Myclass.php';
// Specify a cache file
$cacheFile = dirname(__FILE__) . '/xmlrpc.cache';
// Allow Services_Exceptions to report as fault responses
Zend_XmlRpc_Server_Fault::attachFaultException('Services_Exception');
$server = new Zend_XmlRpc_Server();
// Attempt to retrieve server definition from cache
if (!Zend_XmlRpc_Server_Cache::get($cacheFile, $server)) {
    $server->setClass('Myclass', 'cla');   // methods called as comb.*
    // Save cache
    Zend_XmlRpc_Server_Cache::save($cacheFile, $server));
}
// Create a request object
$request = new Services_Request();
// Utilize a custom response
$server->setResponseClass('Services_Response');
echo $server->handle($request);
 ?>
ma classe

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
Class Myclass
{
 function Myclass()
 {
 
 }
 function My_Service_Class()
 {//
  return "hello";
 }//
}
mon client

Code :
1
2
3
4
5
 
require_once 'Zend/XmlRpc/Client.php';   
$client = new Zend_XmlRpc_Client('http://192.168.0.10/Main/_TST_/xmlRpc.php');   
echo $client->call('cla.Myclass');    
// hello
l'erreur est la suivante

Code :
1
2
3
 
 client denied by server configuration: /var/www/Main/_TST_/xmlRpc.php
[Wed Jul 11 00:32:59 2007] [error] [client 192.168.0.5] PHP Fatal error:  Uncaught exception 'Zend_XmlRpc_Client_HttpException' with message 'Forbidden' in /var/www/Main/_TST_/Zend/XmlRpc/Client.php:233\nStack trace:\n#0 /var/www/Main/_TST_/Zend/XmlRpc/Client.php(257): Zend_XmlRpc_Client->doRequest(Object(Zend_XmlRpc_Request))\n#1 /var/www/Main/_TST_/xmlRpc_client.php(5): Zend_XmlRpc_Client->call('Cla.My_Service_...')\n#2 {main}\n  thrown in /var/www/Main/_TST_/Zend/XmlRpc/Client.php on line 233
Qu'est-ce qui ne va pas ici dedans ?
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 02h07   #7
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Il est probable que ton style de programmation PHP4 ne lui plaise pas
http://php.developpez.com/faq/?page=poo-php5
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 08h58   #8
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
d'après l'exception, c'est le client HTTP qui retourne "Forbidden" donc peut-être qu'il y a une erreur 403 au moment d'accéder à l'adresse :
http://192.168.0.10/Main/_TST_/xmlRpc.php
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 14h46   #9
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
Y a 2 tuto ici: http://www.zftutorials.com/zend-xmlrpc/
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 17h21   #10
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 505
Points : 292
Points : 292
C'est précisément ceux que j'ai suivi et il ne fonctionne pas chez moi...
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 21h12   #11
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par mathieu
d'après l'exception, c'est le client HTTP qui retourne "Forbidden" donc peut-être qu'il y a une erreur 403 au moment d'accéder à l'adresse :
http://192.168.0.10/Main/_TST_/xmlRpc.php
quand tu vas directement à l'URL avec ton navigateur, ça donne quoi ?
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 22h28   #12
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 505
Points : 292
Points : 292
tu as raison concernant cette erreur, c'est un 404.

J'avais fait le test sur la bonne url qui retournait tout de même une erreur. Mais c'est peut-être une piste... Merci
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 22h34   #13
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 505
Points : 292
Points : 292
J'ai une autre erreur avec mon service dejà posté...

La voici

Code :
1
2
3
 
[client 192.168.0.10] client denied by server configuration: /var/www/Main/_TST_/xmlrpc.php
[Wed Jul 11 22:35:02 2007] [error] [client 192.168.0.5] PHP Fatal error:  Uncaught exception 'Zend_XmlRpc_Client_HttpException' with message 'Forbidden' in /var/www/Main/_TST_/Zend/XmlRpc/Client.php:233\nStack trace:\n#0 /var/www/Main/_TST_/Zend/XmlRpc/Client.php(257): Zend_XmlRpc_Client->doRequest(Object(Zend_XmlRpc_Request))\n#1 /var/www/Main/_TST_/xmlRpc_client.php(5): Zend_XmlRpc_Client->call('cla.Myclass')\n#2 {main}\n  thrown in /var/www/Main/_TST_/Zend/XmlRpc/Client.php on line 233, referer: <a href="http://192.168.0.10/Main/_TST_/" target="_blank">http://192.168.0.10/Main/_TST_/</a>
est-ce que ça provient du fait que je n'ai pas installé zf mais seulement deployé dans un repertoire ?
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 22h50   #14
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 505
Points : 292
Points : 292
Je semble avoir fixé la plupart des problemes avec le code suivant qui ne me retourne plus d'erreur et qui fait son job.

Server :

Code :
1
2
3
4
5
6
7
8
 
<?php
require_once 'Zend/XmlRpc/Server.php';
require_once 'Myclass.php';
$server = new Zend_XmlRpc_Server();
$server->setClass('Myclass','cla');
echo $server->handle();
 ?>
Service :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
Class Myclass
{
 function Myclass()
 {
 
 }
 function My_Service_Class()
 {//
  return "hello";
 }//
}
?>
client :

Code :
1
2
3
4
5
6
7
8
 
<?php
 
require_once 'Zend/XmlRpc/Client.php';   
$client = new Zend_XmlRpc_Client('http://192.168.0.10/Main/_TST_/xmlrpc.php');   
echo $client->call('cla.My_Service_Class');
// hello   
?>
J'ai une dersière question mais plus en rapport avec la philo de creation des webservices.

Pourquoi si j'appelle une methode directement du constructeur je reçoit une exception 'Zend_XmlRpc_Client_FaultException' with message 'Failed to parse response' ?

Ma classe :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
Class Myclass
{
 function Myclass()
 {//
     this->My_Service_Class();
 }//
 function My_Service_Class()
 {//
  return "hello";
 }//
}
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 23h07   #15
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par zulad
J'ai une dersière question mais plus en rapport avec la philo de creation des webservices.

Pourquoi si j'appelle une methode directement du constructeur je reçoit une exception 'Zend_XmlRpc_Client_FaultException' with message 'Failed to parse response' ?
peut-être parce que tu as oublié le "$" devant le "this" ?
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 23h39   #16
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Il faudrait quand même que tu penses à adopter une syntaxe PHP5 et à oublier la syntaxe PHP4...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
class MyClass
{
 public function __construct()
 {
 
 }
 
 public function My_Service_Class()
 {
  return "hello";
 }
?>
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 08h42   #17
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 505
Points : 292
Points : 292
oops oui c'est vrai merci
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h34.


 
 
 
 
Partenaires

Hébergement Web