Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [RESOLU] Xml-rpc 404 not found - pb sur ma config !

Posted by e-media on 10/03/2012 11:57

Bonjour Laurent,

J'utilise actuellement jelix 1.3.3, avec le module jcommunity + master_admin et avec les points d'entrée www/index.php et www/admin.php correctement configurés et fonctionnels.

J'essaye d'utiliser xml-rpc comme indiqué dans la Doc xml-rpc 1.3.3.

J'ai suivi à la lettre :

  1. Créé le point d'entrée www/xmlrpc.php avec le code qui va bien et en créant le var/config/xmlrpc.ini.php avec ;<?php die(''); ?> sans rien d'autre.
  2. Dans var/config/defaultconfig.ini.php section [simple_urlengine_entrypoints] j'ai ajouté xmlrpc="@xmlrpc"
  3. Dans var/config/defaultconfig.ini.php j'ai modulesPath="lib:jelix-admin-modules/,lib:jelix-modules/,app:modules/,app:admin-modules/"
  4. J'ai créé dans admin-modules/myModule/controllers/default.xmlrpc.php
class defaultCtrl extends jController {
    /**
    *
    */
     public $pluginParams = array(
        '*'        => array('auth.required' => false)
     );

    function index() {
        $rep = $this->getResponse('xmlrpc');
        $rep->response = array("TEST" => "xmlrpc", "version" => "1.0" );
        return $rep;
    }
}

  1. appel depuis un client xml-rpc la méthode 'myModule:default:index' (idem si je deplace le controller vers modules/myModulePublic/controllers avec appel 'myModulePublic:default:index')

En retour j'ai un xml ;-) qui contient


<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>error</name>
            <value><string>404 not found (wrong action)</string></value>
             </member>
        </struct>
      </value>
    </param>
  </params>
</methodResponse>

Aurais-je omis quelque chose dans la config ? ou d'autres pistes car là je sèche...

Merci pour ta réponse. e-media


e-media

  [Opened] Xml-rpc 404 not found - pb sur ma config ?

Reply #1 Posted by e-media on 10/03/2012 16:05

Visiblement à force de jLog j'ai remonté que l'exception part de jSelectorActFast :

...
   protected function _createPath(){
        global $gJConfig;
        if(!isset($gJConfig->_modulesPathList[$this->module])){
            throw new jExceptionSelector('jelix~errors.selector.module.unknown', $this->toString());
        }else{
            $this->_path = $gJConfig->_modulesPathList[$this->module].'controllers/'.$this->controller.'.'.$this->request.'.php';
        }
    }
...

Dans la méthode process() de jCoordinator.class.php j'ai bien le bon module (myModule), la bonne action (default:index)., mais c'est le code suivant qui instancie un jSelectorActFast et qui propage l'exception notfoundAct en xml puisque xmlrpc.

...
        try{
            $this->action = new jSelectorActFast($this->request->type, $this->moduleName, $this->actionName);

            if($gJConfig->modules[$this->moduleName.'.access'] < 2){
                throw new jException('jelix~errors.module.untrusted',$this->moduleName);
            }

            $ctrl = $this->getController($this->action);
        }catch(jException $e){
            if ($gJConfig->urlengine['notfoundAct'] =='') {
                throw $e;
            }
            try {
                $this->action = new jSelectorAct($gJConfig->urlengine['notfoundAct']);
                $ctrl = $this->getController($this->action);
            }catch(jException $e2){
                throw $e;
            }
        }
...

Donc que doit contenir $gJConfig->_modulesPathList[$this->module] ? ou est-ce que c'est initialisé ?


e-media

  [Opened] Xml-rpc 404 not found - pb sur ma config ou bug ? Ticket ou pas Ticket ?

Reply #2 Posted by e-media on 10/04/2012 09:55

En regardant de plus près grace à jLog j'ai :

2012-10-04 09:42:30	127.0.0.1	notice	module=myModule
2012-10-04 09:42:30	127.0.0.1	notice	modPathlist: array (
  'jelix' => ...\\...\\htdocs\\lib\\jelix/core-modules/jelix/',
)

Mais ou sont passés les éléments de la configuration du defaultconfig.ini.php ? modulesPath="lib:jelix-admin-modules/,lib:jelix-modules/,app:modules/,app:admin-modules/"

Pour info j'ai rajouté la ligne précédente aussi dans mon var/config/xmlrpc/config.ini.php directement apres le die(), en vain...

;<?php die(''); ?>
;for security reasons , don't remove or modify the first line
modulesPath="lib:jelix-admin-modules/,lib:jelix-modules/,app:modules/,app:admin-modules/"

Ne serais-ce pas un bug au final ? Ou il me manque quelques infos pour parachever ma config ? Laurent ticket ou pas ticket ?

Merci pour vos éclaircissements. e-media


e-media

  [Opened] Xml-rpc 404 not found - pb sur ma config !

Reply #3 Posted by e-media on 10/04/2012 11:35

Ca y est je viens de résoudre ce pb, pour ceux qui sont preneur de l'info, il faut rajouter dans var/config/installer.ini.php une section

[xmlrpc]
myModule.installed=1
myModule.version=0.1pre
  • Sinon pour être plus rigoureux, il faut procéder à l'ajout de l'entrypoint dans le fichier project.xml :
...
   <entry file="xmlrpc.php" config="xmlrpc/config.ini.php" type="xmlrpc"/>
</entrypoints>
...
  • puis lancer la commande suivante depuis un shell :
php cmd.php installmodule -ep xmlrpc.php myModule

@+ e-media


e-media

  [Opened] [RESOLU] Xml-rpc 404 not found - pb sur ma config !

Reply #4 Posted by laurentj on 10/05/2012 13:11

Bonjour,

il aurait tout simplement fallu, au début, utiliser la commande jelix-script createentrypoint qui fait tout pour toi.

Mais je reconnais qu'il y a un manque dans le manuel.

  [Opened] [RESOLU] Xml-rpc 404 not found - pb sur ma config !

Reply #5 Posted by e-media on 10/05/2012 13:46

Ok merci, Laurent, pour cette info.

J'en prends bonne note et améliore ma connaissance de jelix grace à ton retour.

e-media


e-media

 
Page
  1. [RESOLU] Xml-rpc 404 not found - pb sur ma config !