#openerp #xml-rpc #odoo
#odoo #xml-rpc
Вопрос:
Я пытаюсь выяснить, принимает ли мой сервер запрос xmlrpc или нет. Я знаю, что когда я пытаюсь получить доступ http://my_ip:8069/xmlrpc/common
к или http://my_ip:8069/xmlrpc/object
в своем браузере, я получаю сообщение об ошибке «Файл не найден». Это то, что ожидается?
Должен ли я запускать свой сервер с любым флагом, чтобы запустить поддержку xml-rpc?
Вот мой openerp-server.conf
admin_passwd = my_pass
db_host = False
db_port = False
db_user = openerp
db_password = False
addons_path = /opt/openerp/v7/addons,/opt/openerp/v7/web/addons,/home/lfc/openerp/v7/addons
;Log settings
logfile = /var/log/openerp/openerp-server.log
; log_level = error
log_level = debug
И мой стартовый скрипт:
#!/bin/sh
### BEGIN INIT INFO
# Provides: openerp-server
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Enterprise Resource Management software
# Description: Open ERP is a complete ERP and CRM software.
### END INIT INFO
PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/openerp/v7/server/openerp-server
NAME=openerp-server
DESC=openerp-server
# Specify the user name (Default: openerp).
USER=openerp
# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/openerp-server.conf"
# pidfile
PIDFILE=/var/run/$NAME.pid
# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"
# Added option to debug
#DAEMON_OPTS="-c $CONFIGFILE --debug --log-level=debug"
# Log File
LOGFILE=/var/log/openerp/openerp-server.log
[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0
checkpid() {
[ -f $PIDFILE ] || return 1
pid=`cat $PIDFILE`
[ -d /proc/$pid ] amp;amp; return 0
return 1
}
case "${1}" in
start)
#Check if deamon is already running
checkpid
if [ "$pid" != "" ]; then
echo "$NAME already running with pid $pid."
else
#Only starts if not running
echo -n "Starting ${DESC}: "
start-stop-daemon --start --quiet --pidfile ${PIDFILE}
--chuid ${USER} --background --make-pidfile
--exec ${DAEMON} -- ${DAEMON_OPTS} --logfile=${LOGFILE}
echo "${NAME}, OK."
fi
;;
stop)
echo -n "Stopping ${DESC}: "
start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
--oknodo
#Check existence of PID file. If exists, then remove it
checkpid
if [ "$pid" != "" ]; then
`rm ${PIDFILE}`
echo -n "${PIDFILE} removed "
fi
echo "${NAME}, Stoped!"
;;
restart|force-reload)
echo -n "Restarting ${DESC}: "
start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
--oknodo
echo -n "n${NAME}: STOPPED"
sleep 1
#Check existence of PID file. If exists, then remove it
checkpid
if [ "$pid" != "" ]; then
`rm ${PIDFILE}`
echo -n "n${PIDFILE} REMOVED "
fi
sleep 1
start-stop-daemon --start --quiet --pidfile ${PIDFILE}
--chuid ${USER} --background --make-pidfile
--exec ${DAEMON} -- ${DAEMON_OPTS}
echo "n${NAME}: STARTEDn"
;;
*)
N=/etc/init.d/${NAME}
echo "Usage: ${NAME} {start|stop|restart|force-reload}" >amp;2
exit 1
;;
esac
exit 0
Ответ №1:
Вы должны получить к нему доступ с действительными данными.
Common ( xmlrpc/common
) предназначен для подключения, а Object ( xmlrpc/object
) — для доступа к таблицам и функциям (модулям).
Для этого вы можете создать api с использованием Python, PHP, Java и т. Д
Например, проверьте эту ссылку
Комментарии:
1. Но вы говорите, что в моем openerp-server.conf нет необходимости в каком-либо дополнительном флаге. Мой вопрос заключается в том, что я пытался протестировать свой модуль с помощью Apache JMeter, следуя этим инструкциям ( selvam4u.wordpress.com/2011/05/25 /… ) и я продолжаю получать ошибку 500. Когда я попытался получить доступ с помощью браузера, я получил 404, поэтому мне было интересно, не делаю ли я ничего плохого…
2. В XML-коде из этого руководства была ошибка, после ее исправления все прошло нормально!
3. @FilipeCastanheira добавьте правильный код здесь в качестве ответа, чтобы другие также использовали
4. Я ничего не менял в коде из selvam4u.wordpress.com/2011/05/25 /… за исключением того, что по какой-то причине копирование-вставка его в JMeter «съело» пробел в объявлении xml, и именно поэтому я получал ошибку 500. Изменение
<?xmlversion="1.0"?>
на<?xml version="1.0"?>
решило проблему.
Ответ №2:
Чтобы проверить это, вы можете использовать openerp-proxy project, который можно использовать в качестве клиента библиотеки или CLI для OpenERP / Odoo с использованием xml-rpc или json-rpc.
Итак, чтобы проверить ваше соединение:
$ pip install openerp_proxy # also install IPython if you like it
$ openerp_proxy # this will openen python/IPython shell
>>> db = session.connect() # This will ask you required info for connection
>>> db.registered_objects # this should return list of registered Openerp/Odoo models
Надеюсь, это поможет