Я последовал за этой статьей шаг за шагом, и я, кажется, единственный человек, который получил эту конкретную ошибку. http://jasonrowe.com/2011/12/30/ejabberd-offline-messages/comment-page-1/#comment-2274ejabberd 2.1.11 ошибка на крюке модуля Erlang
- Я создал и компилируется код Erlang.
- Я добавил файл .beam в указанное место.
- Я обновил файл ejabberd.cfg.
Но когда я посылаю автономный сообщение на сервер ejabberd я получаю следующее сообщение об ошибке в файле журнала:
=ERROR REPORT==== 2013-02-21 15:34:50 ===
E(<0.365.0>:ejabberd_hooks:294) : {if_clause,
[{mod_http_offline,create_message,3},
{ejabberd_hooks,run1,3},
{ejabberd_sm,route,3},
{ejabberd_local,route,3},
{ejabberd_router,route,3},
{ejabberd_c2s,session_established2,2},
{p1_fsm,handle_msg,10},
{proc_lib,init_p_do_apply,3}]}
running hook: {offline_message_hook,
[{jid,"test","zspc-10","Spark 2.6.3","test","zspc-10",
"Spark 2.6.3"},
{jid,"johan","zspc-10",[],"johan","zspc-10",[]},
{xmlelement,"message",
[{"id","4z5S1-69"},{"to","[email protected]"}],
[{xmlelement,"x",
[{"xmlns","jabber:x:event"}],
[{xmlelement,"composing",[],[]}]}]}]}
Ошибка возникает в функции create_message
. Вот как это выглядит:
create_message(_From, _To, Packet) ->
Type = xml:get_tag_attr_s("type", Packet),
FromS = xml:get_tag_attr_s("from", Packet),
ToS = xml:get_tag_attr_s("to", Packet),
Body = xml:get_path_s(Packet, [{elem, "body"}, cdata]),
if (Type == "chat") ->
post_offline_message(FromS, ToS, Body)
end.
Если это любая помощь, я бегу ejabberd 2.1.11 на Windows 7 ПК и скомпилирован код с Erlang R14B04.
Стоит ли снова открывать этот вопрос, так как legoscia отредактировал его, чтобы придерживаться рекомендаций –