在 ejabberd 中安装 mod_xmlrpc 后出错
Posted
技术标签:
【中文标题】在 ejabberd 中安装 mod_xmlrpc 后出错【英文标题】:Error after installing mod_xmlrpc in ejabberd 【发布时间】:2015-03-15 15:30:25 【问题描述】:我正在开发一个 java 项目,在该项目中我必须与 ejabberd(创建/删除 jabber 用户等)xmpp 服务器进行通信。从互联网上提供的不同建议中,我了解到 xml rpc 是实现这一目标的一种方法。
我尝试按照此线程中的建议安装 mod_xmlrpc。 Error while starting ejabberd with xml_rpc
但我在配置 mod_xmlrpc 后无法启动 ejabberd。 ejabberd 日志说,
=ERROR REPORT==== 2015-03-15 20:23:27 ===
C(<0.42.0>:gen_mod:75) : Problem starting the module mod_adhoc for host "example.com"
options: []
exit: noproc,
gen_server,call,
[ejabberd_iq_sup,
start_child,["example.com",mod_adhoc,process_local_iq],
infinity]
=ERROR REPORT==== 2015-03-15 20:23:27 ===
C(<0.42.0>:gen_mod:80) : ejabberd initialization was aborted because a module start failed.
erlang 日志说,
=CRASH REPORT==== 15-Mar-2015::20:23:27 ===
crasher:
initial call: supervisor:ejabberd_listener/1
pid: <0.270.0>
registered_name: []
exception exit: undef,
[ejabberd_xmlrpc,socket_type,[],[],
ejabberd_listener,'-bind_tcp_ports/0-fun-0-',1,
[file,"ejabberd_listener.erl",line,63],
lists,foreach,2,[file,"lists.erl",line,1323],
ejabberd_listener,init,1,
[file,"ejabberd_listener.erl",line,52],
supervisor,init,1,
[file,"supervisor.erl",line,239],
gen_server,init_it,6,
[file,"gen_server.erl",line,304],
proc_lib,init_p_do_apply,3,
[file,"proc_lib.erl",line,239]]
in function gen_server:init_it/6 (gen_server.erl, line 328)
ancestors: [ejabberd_sup,<0.42.0>]
messages: []
links: [#Port<0.3747>,<0.234.0>,#Port<0.3744>]
dictionary: []
trap_exit: true
status: running
heap_size: 987
stack_size: 27
reductions: 1215
neighbours:
=SUPERVISOR REPORT==== 15-Mar-2015::20:23:27 ===
Supervisor: local,ejabberd_sup
Context: start_error
Reason: undef,
[ejabberd_xmlrpc,socket_type,[],[],
ejabberd_listener,'-bind_tcp_ports/0-fun-0-',1,
[file,"ejabberd_listener.erl",line,63],
lists,foreach,2,[file,"lists.erl",line,1323],
ejabberd_listener,init,1,
[file,"ejabberd_listener.erl",line,52],
supervisor,init,1,[file,"supervisor.erl",line,239],
gen_server,init_it,6,
[file,"gen_server.erl",line,304],
proc_lib,init_p_do_apply,3,
[file,"proc_lib.erl",line,239]]
Offender: [pid,undefined,
name,ejabberd_listener,
mfargs,ejabberd_listener,start_link,[],
restart_type,permanent,
shutdown,infinity,
child_type,supervisor]
由于我是 ejabberd 和 erlang 世界的新手,我发现很难追踪根本原因。请帮助我确定此崩溃的根本原因。
顺便说一句,还有其他方法可以从 java 服务与 ejabberd 进行通信(创建/删除 jabber 用户等)吗?
【问题讨论】:
请问你用的是什么版本的ejabberd??? 【参考方案1】:erlang 日志说它在模块 ejabberd_xmlrpc 中找不到没有参数的函数 socket_type。因为它是一个有效的调用,并且模块和函数都存在于应用程序ejabberd中,这意味着安装过程中出现了问题(编译失败,路径错误???)
【讨论】:
以上是关于在 ejabberd 中安装 mod_xmlrpc 后出错的主要内容,如果未能解决你的问题,请参考以下文章
如何在 apache2 tomcat6 中安装 ffmpeg 或在 ubuntu 中安装 xampp?