Odoo XML-RPC Traceback (последний вызов был последним) - PullRequest
1 голос
/ 15 мая 2019

Я новичок в Odoo, и у меня нет опыта работы с системой, и я стараюсь следовать документации, как они это делают.

Для начала мне нужно подключить внешнее веб-приложение PHP к нашей системе Odoo.

Я вижу, что это возможно, и я следую инструкциям в этой документации: Документация Odoo

Так что я воткнусь:

$common = ripcord::client("$url/xmlrpc/2/common");
$common->version();

Когда я выполняю эти строки кода, я получаю эту ошибку:

[faultString] => Traceback (most recent call last):
File "/home/odoo/src/odoo/12.0/odoo/addons/base/controllers/rpc.py", line 63, in xmlrpc_2
response = self._xmlrpc(service)
File "/home/odoo/src/odoo/12.0/odoo/addons/base/controllers/rpc.py", line 42, in _xmlrpc
params, method = loads(data)
File "/usr/lib/python3.5/xmlrpc/client.py", line 1000, in loads
p.close()
File "/usr/lib/python3.5/xmlrpc/client.py", line 447, in close
parser.Parse(b"", True) # end of data
xml.parsers.expat.ExpatError: no element found: line 1, column 0

Я использую демонстрационный URL (https://demo.odoo.com/), который они рекомендуют. И из первого примера я успешно получаю имя пользователя, пароль, имя базы данных. Но после этого я ничего не могу сделать.

UPDATE: Это мой класс PHP, который я вызываю для тестирования:

require_once(__DIR__ . '/Ripcode/ripcord.php');

class Ripcode
{
    private $_url = 'https://demo.odoo.com/';

    private $_server = [];

    private $_connection = null;

    private $_common = null;

    public function __construct()
    {
         $this->_server = \ripcord::client($this->_url . 'start')->start();
         $common = \ripcord::client($this->_url . "xmlrpc/2/common");
         $common->version();

         $models = \ripcord::client($this->_url . "xmlrpc/2/object");

         $uid = $common->authenticate(
             $this->_server['database'],
             $this->_server['user'],
             $this->_server['password'],
             array()
         );

         showArray([
            'server' => $this->_server,
            'uid' => $uid
         ]);

         showArray([
            'server' => $this->_server,
            'models' => $models,
            'uid' => $uid
            'common' => $common->version()
         ]);
    }
}

1 Ответ

0 голосов
/ 21 мая 2019

Проблема в рипкорде.Я протестировал один клонированный из https://github.com/poef/ripcord с локально работающим Odoo v12 и отлаживал от получения запроса до тех пор, пока не был отправлен ответ.Все работает без сбоев, пока не доберется до ripcord.

Могу ли я предложить использовать другой клиент XML-RPC?

...