IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres composants PHP Discussion :

Xmlrpc de Zend Framework


Sujet :

Autres composants PHP

  1. #1
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut Xmlrpc de Zend Framework
    Bonjour,

    je viens de tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    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.
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  5. #5
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    Quelqu'un a des tutos operant pour le xmlrpc de zf ?
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  6. #6
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    Je tente de faire fonctionner mon petit service xmlrpc

    le server
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Il est probable que ton style de programmation PHP4 ne lui plaise pas
    http://php.developpez.com/faq/?page=poo-php5

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    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

  9. #9
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  10. #10
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    C'est précisément ceux que j'ai suivi et il ne fonctionne pas chez moi...
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  11. #11
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    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 ?

  12. #12
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    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
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  13. #13
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    J'ai une autre erreur avec mon service dejà posté...

    La voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  14. #14
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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";
     }//
    }
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  15. #15
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    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" ?

  16. #16
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Il faudrait quand même que tu penses à adopter une syntaxe PHP5 et à oublier la syntaxe PHP4...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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";
     }
    ?>

  17. #17
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    oops oui c'est vrai merci
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Votre avis sur Zend Framework ?
    Par __fabrice dans le forum Zend Framework
    Réponses: 79
    Dernier message: 28/11/2009, 18h09
  2. Zend Framework et URL Rewriting
    Par ToxiZz dans le forum MVC
    Réponses: 1
    Dernier message: 19/04/2006, 11h25
  3. [PHP5] PEAR vs ZEND Framework
    Par wdionysos dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/04/2006, 09h51
  4. Réponses: 3
    Dernier message: 02/04/2006, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo