ejabber - 启用 mod_rest 时无法启动 ejabberd

ejabber - not able to start ejabberd when mod_rest enabled

我只是在 OS X Yosemite 10.10.5 上使用 mod_rest 和 ejabberd 16.04 进行了快速测试。它似乎没有按预期工作。

调试日志如下:

2016-05-25 12:06:33 =CRASH REPORT====
crasher:
initial call: application_master:init/4
pid: <0.37.0>
registered_name: []
exception exit: {{bad_return,{{ejabberd_app,start,[normal,[]]},{'EXIT',{undef,[{mod_rest,mod_opt_type,[db_type],[]},{gen_mod,db_type,3,[{file,"src/gen_mod.erl"},{line,317}]},{ejabberd_riak_sup,'-is_riak_configured/1-fun-3-',2,[{file,"src/ejabberd_riak_sup.erl"},{line,74}]},{lists,any,2,[{file,"lists.erl"},{line,1224}]},{ejabberd_riak_sup,is_riak_configured,1,[{file,"src/ejabberd_riak_sup.erl"},{line,72}]},{lists,any,2,[{file,"lists.erl"},{line,1224}]},{ejabberd_riak_sup,start,0,[{file,"src/ejabberd_riak_sup.erl"},{line,48}]},{ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,65}]}]}}}},[{application_master,init,4,[{file,"application_master.erl"},{line,134}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}
ancestors: [<0.36.0>]
messages: []
links: [<0.36.0>,<0.38.0>,<0.7.0>]
dictionary: []
trap_exit: true
status: running
heap_size: 1598
stack_size: 27
reductions: 184
neighbours:

除以下配置外,是否还需要其他配置

modules:
  mod_rest:
    allowed_ips:
      - "> {127,0,0,1} ."
listen:
  -
    port: 5285
    module: ejabberd_http
    request_handlers:
       "/rest": mod_rest

更新:在 ejabberd 16.01 上使用相同的设置和配置进行测试,它有效。

看来这个模块不是最新的,需要更新到最新的API。在最新版本中,模块需要公开 mod_opt_type 功能。您将需要为最新版本的 ejabberd 更新贡献的模块。