Xml rpc 使用xml_rpc启动ejabberd时出错
我尝试在ejabberd服务器中配置xmlrpc,但服务器在配置xmlrpc后似乎无法启动。我的ejabberd配置是:Xml rpc 使用xml_rpc启动ejabberd时出错,xml-rpc,ejabberd,Xml Rpc,Ejabberd,我尝试在ejabberd服务器中配置xmlrpc,但服务器在配置xmlrpc后似乎无法启动。我的ejabberd配置是: {listen,[ {{4560, "127.0.0.1"}, ejabberd_xmlrpc, [ {access_commands, [ %% This bot can only execute the command 'register', %% and if argument 'host' is provided, it must be
{listen,[
{{4560, "127.0.0.1"}, ejabberd_xmlrpc, [
{access_commands, [
%% This bot can only execute the command 'register',
%% and if argument 'host' is provided, it must be "example.org":
{xmlrpcaccess, [register], [{host, "myhost.com"}]}
]}
]},
//many modules added here
]}.
{acl, xmlrpcbot, {user, "USER", "myhost.com"}}.
{access, xmlrpcaccess, [{allow, xmlrpcbot}]}.
当我启动服务时,我会得到以下日志:
=INFO REPORT==== 2014-04-08 17:26:45 ===
application: ejabberd
exited: {bad_return,
{{ejabberd_app,start,[normal,[]]},
{'EXIT',
{noproc,
{gen_server,call,
[ejabberd_sup,
{start_child,
{ejabberd_odbc_sup_localhost,
{ejabberd_odbc_sup,start_link,["localhost"]},
transient,infinity,supervisor,
[ejabberd_odbc_sup]}},
infinity]}}}}}
type: temporary
当然,如果我注释所有xml_rpc配置行,服务就会运行。是什么导致了这个错误?谢谢当我试图在配置文件中配置Ejabberd_xmlrpc时,我也遇到了同样的问题,并且得到了与您在问题中提到的相同的错误 当我查看erlang错误消息时,“noproc”表示“试图链接到未退出的进程”,上面的错误表示您的odbc配置存在一些问题{如果您已配置为使用mysql但未正确配置,则此消息似乎符合条件},但在使用本机db时,发生了与实际问题不同的错误 我花了将近2天的时间通过谷歌搜索和“尝试并出错”来解决这个错误,并找到了一个由巴德洛普给出的帖子,多亏了他,我终于解决了这个错误 我将一步一步地进行这个过程,这样ejabberd的任何新蜜蜂想要配置ejabberd_xmlrpc都不会感到困惑 在进一步讨论之前,我应该提到我的机器配置 我在我的Dell 64位机器上使用了ubuntu 14.04,该机器上安装了ejabberd 2.1.11,并安装了erlang版本R16B03 关于如何配置和使用ejabberd_xmlrpc,本文给出了官方文档 有关上述链接的详细信息如下所示 1.您需要获取并安装XMLRPC Erlang
You can download XMLRPC-Erlang binary files from
http://www.ejabberd.im/ejabberd_xmlrpc
or compile it yourself:
wget http://www.ejabberd.im/files/contributions/xmlrpc-1.13-ipr2.tgz
tar -xzvf xmlrpc-1.13-ipr2.tgz
cd xmlrpc-1.13/src
make
cd ../../
Then you can copy the *.beam files to ejabberd ebin directory,
or add an option like this to the ejabberd start script:
$ erl -pa '/home/jabber/xmlrpc-1.13/ebin' ...
2.配置ejabberd以在启动时启动此侦听器:
edit ejabberd.cfg and add on the 'listen' section:
{listen, [
{4560, ejabberd_xmlrpc, []},
...
]}.
3.Start ejabberd.
4. Verify that ejabberd is listening in that port.
在第三步之前,一切都很顺利
但是在执行步骤3之后
发生错误,表示服务器无法启动,请查看ejabberd.log文件以了解更多信息,该日志文件显示错误@user3511518,他在文章中提到了这一点
如何解决此错误强>
在阅读Badlop的回答时,我意识到我没有在jabberd/ebin中包含一个文件,我必须编译ejabberd_xmlrpc.erl文件
巴德洛普的回答
您已经安装了xmlrpc库
现在还需要编译ejabberd_xmlrpc.erl
从下载
在进入链接之前,请确保您已经在计算机上安装了svn,现在请执行以下步骤[上面的链接中给出了相同的步骤]
svn公司
cd ejabberd模块/ejabberd_xmlrpc/trunk
/build.sh
这将构建ejabberd_xmlrpc.beam(ejabberd_xmlrpc.erl的编译版本)
$cd/(您当前的部门)/ejabberd模块/ejabberd/xmlrpc/trunk/ebin
$sudo mv ejabberd_xmlrpc.beam/home/jabberd/ebin[这是一个示例,您必须将>此文件移动到驱动器上安装ejabberd的目录的ebin文件夹]
最后重启你的机器
重新启动后,通过键入检查ejabberd的状态
$sudo ejabberdctl状态
如果显示正在运行,则在终端中执行以下命令
netstat-ntlp | grep LISTEN
如果列表显示
tcp 0 0 0.0.0.0:4560 0.0.0.0:* LISTEN
表示您的xmlrpc正在运行并正在侦听http://hostname:4560
请随时提问
希望这能解决你的问题。我也面临同样的问题。。!!!!!
You're confused there.
tcp 0 0 0.0.0.0:4560 0.0.0.0:* LISTEN