Plugins 无法在Vernemq中启用插件
我在vernemq中启用插件时遇到此错误Plugins 无法在Vernemq中启用插件,plugins,erlang,Plugins,Erlang,我在vernemq中启用插件时遇到此错误 RPC to 'dev1@127.0.0.1' failed: {'EXIT', {{{badmatch, {error, {http_to_mqtt, {{shutdown,
RPC to 'dev1@127.0.0.1' failed: {'EXIT',
{{{badmatch,
{error,
{http_to_mqtt,
{{shutdown,
{failed_to_start_child,
http_to_mqtt_web,
{'EXIT',
{{case_clause,
{error,
{undef,
[{httpd_util,rfc1123_date,[],[]},
{mochiweb_clock,handle_info,2,
[{file,
"src/mochiweb_clock.erl"},
{line,88}]},
{mochiweb_clock,init,1,
[{file,
"src/mochiweb_clock.erl"},
{line,69}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},
{line,306}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},
{line,237}]}]}}},
[{mochiweb_http,ensure_started,1,
[{file,"src/mochiweb_http.erl"},
{line,76}]},
{mochiweb_http,start,1,
[{file,"src/mochiweb_http.erl"},
{line,68}]},
{supervisor,do_start_child,2,
[{file,"supervisor.erl"},
{line,314}]},
{supervisor,start_children,3,
[{file,"supervisor.erl"},
{line,297}]},
{supervisor,init_children,2,
[{file,"supervisor.erl"},
{line,263}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},
{line,306}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},
{line,237}]}]}}}},
{http_to_mqtt_app,start,
[normal,[]]}}}}},
[{vmq_plugin_mgr,start_plugin,1,
[{file,
"/Users/sunnyjain/Desktop/vernemq/_build/default/lib/vmq_plugin/src/vmq_plugin_mgr.erl"},
{line,489}]},
{vmq_plugin_mgr,start_plugins,1,
[{file,
"/Users/sunnyjain/Desktop/vernemq/_build/default/lib/vmq_plugin/src/vmq_plugin_mgr.erl"},
{line,471}]},
{vmq_plugin_mgr,load_plugins,2,
[{file,
"/Users/sunnyjain/Desktop/vernemq/_build/default/lib/vmq_plugin/src/vmq_plugin_mgr.erl"},
{line,410}]},
{vmq_plugin_mgr,update_plugins,2,
[{file,
"/Users/sunnyjain/Desktop/vernemq/_build/default/lib/vmq_plugin/src/vmq_plugin_mgr.erl"},
{line,354}]},
{vmq_plugin_mgr,handle_plugin_call,2,
[{file,
"/Users/sunnyjain/Desktop/vernemq/_build/default/lib/vmq_plugin/src/vmq_plugin_mgr.erl"},
{line,183}]},
{gen_server,try_handle_call,4,
[{file,"gen_server.erl"},{line,607}]},
{gen_server,handle_msg,5,
[{file,"gen_server.erl"},{line,639}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,237}]}]},
{gen_server,call,
[vmq_plugin_mgr,
{enable_plugin,http_to_mqtt,
[{paths,
["/Users/sunnyjain/Desktop/practice/http_to_mqtt"]}]},
infinity]}}}
我用来启用插件的命令是:
vmq-admin plugin enable -n http_to_mqtt -p /Users/sunnyjain/Desktop/http_to_mqtt
如果我的PATH变量包含下面的路径,那么我不会得到上面的错误
/Users/sunnyjain/Desktop/vernemq/_build/default/rel/vernemq/bin
但当我改变人生道路
/Users/sunnyjain/Desktop/vernemq/_build/dev1/rel/vernemq/bin
然后我得到了错误。有人能告诉我为什么会出现错误,以及从“default”节点启用插件与从“dev1”节点启用插件有何不同。插件如何依赖于节点。由于iNet应用程序未启动,因此出现此错误 要在vernemq中启用iNet,可以键入以下命令
vmq-admin plugin enable -n inets --path /usr/local/lib/erlang/lib/inets-5.10.6
这将删除错误。
根本原因(大致在错误消息的中间)是MoCiWeb不能在<代码> HTTPDYUTI/<代码>模块中调用一个函数,这是在<代码>中的< <代码> >应用程序中。我的猜测是,default
版本包含inets
应用程序,而dev1
没有,或者由于某种原因缺少beam文件。是的,您的猜测是正确的。我必须在vernemq中启用inets应用程序作为插件。现在它正在工作。感谢您指出这一点。您可以将您的解决方案发布为您自己问题的答案,以便将来遇到相同错误的任何人都可以轻松找到解决方法。如果您需要在插件中启动“inets”,则应将其添加到插件的.app.src文件中的“application”部分。如果您正在执行此操作,“vmq管理插件启用-n'yourplugin'..”将在启动您的插件之前自动启动'inets'。@Andre它说{inets,{“没有这样的文件或目录”,“inets.app”}。我们是否必须在应用程序部分提供inets.app的路径?如果是,那么编写它的格式是什么?iNet应用程序没有打包为Erlang版本的一部分。我建议更改,将inets应用程序添加到relx配置中,并重新构建版本。我不建议使用vmq admin plugin enable
启动VerneMQ插件以外的其他应用程序。