2016-09-15 78 views
0

我试图使用XML-RPC连接到Odoo 9。我尝试过使用xmlrpc/2/common,xmlrpc/common和其他各种组合的url。我只是试图通过传递version()来获得版本,所以认证不是问题。我使用Nginx作为反向代理,我尝试禁用Nginx并使用各种端口(包括配置中的端口)直接连接到Odoo。 XML-RPC在我的配置文件中启用。为什么在通过XML-RPC访问Odoo时得到404?

无法发布到Odoo论坛,也没有从IRC频道获得答案。我现在花了两天的时间,可以真正使用一些帮助。

任何人都可以确认xmlrpc/2/common是否是Odoo 9上的正确路径?

是否有一个Odoo实例已知工作,我可以尝试连接到?

回答

0

这似乎是一个网络问题。要解决这个问题,你应该真正有权访问你的防火墙,网络服务器日志(你的情况nginx)和odoo日志。我会假设你至少有你的网络服务器日志和odoo日志。检查您的配置和启动脚本以确定您正在运行xmlrpc的端口。

当您执行xmlrpc命令查看odoo上的传入请求(确保您将日志记录设置为info或甚至更好的debug_rpc_answer)。有关日志记录的文档,请查看this。您至少应该在日志中看到请求是否成功。如果根本没有看到请求,那么nginx没有正确转发(或防火墙被阻止)。

你真的想要验证你的请求是否已经通过,然后在另一端响应回来。如果进行了配置,防火墙可以让请求进入但阻止传出。

import xmlrpclib 
url = "localhost:8069" 
common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url)) 
common.version() 

如果你不能在运行你的odoo服务器的主机上运行这个功能,那么关闭它。检查端口或者xmlrpc = True是否在您的配置中启用。从那里你可以从另一台计算机执行,然后引入你的网络服务器。

0

Odoo第10版:

检查Odoo配置文件或命令行

xmlrpc_interface = 0.0.0.0 
xmlrpc = True 
xmlrpc-port = 8069 

运行此Python代码:

import xmlrpclib 
common = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/2/common') 
print common.version() 
相关问题