首页 > 解决方案 > 无法在 ejabberd-18-06 上处理自定义 iq

问题描述

我在 ec2 实例上使用 ejabberd-18.06。当我将自定义 iq 节发送为

D/SMACK: SENT (0): <iq to=‘example.com' id='Eu0j3-13' type='get'><query xmlns='ns:custom'><xyz someparam =‘4’&gt;</xyz>><abc>50</abc>><property someprop =‘4’ ctn='India'></property></query></iq>

我收到如下回复:

D/SMACK: RECV (0): <iq xml:lang='en' to='cwsxTrBQ2Z0@example.com/Smack' from=‘example.com' type='error' id='Eu0j3-13'><query xmlns='ns:custom'><xyz someparam=‘4’/>&gt;<abc>50</abc>&gt;<property someprop=‘4’ ctn='India'/></query><error code='500' type='wait'><internal-server-error xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Module failed to handle the query</text></error></iq><r xmlns='urn:xmpp:sm:3'/>

在服务器上,我得到这些日志:

[error] failed to process iq:
#iq{id = <<"Eu0j3-13">>,type = get,lang = <<"en">>,
    from = 
        #jid{
            user = <<"cwsxTrBQ2Z0">>,server = <<“example.com">>,
            resource = <<"Smack">>,luser = <<"cwsxtrbq2z0">>,
            lserver = <<"example.com">>,lresource = <<"Smack">>},
    to = 
        #jid{
            user = <<>>,server = <<"example.com">>,resource = <<>>,luser = <<>>,
            lserver = <<"example.com">>,lresource = <<>>},
    sub_els = 
        [#xmlel{]}],
    meta = #{ip => {}}}
Reason = {error,{undef,[{io_lib_pretty,cind_rec,6,[{file,"io_lib_pretty.erl"},{line,690}]},{io_lib_pretty,cind_record,8,[{file,"io_lib_pretty.erl"},{line,642}]},{io_lib_pretty,cind_element,7,[{file,"io_lib_pretty.erl"},{line,726}]},{io_lib_pretty,cind_list,7,[{file,"io_lib_pretty.erl"},{line,696}]},{io_lib_pretty,cind_field,7,[{file,"io_lib_pretty.erl"},{line,672}]},{io_lib_pretty,cind_fields_tail,8,[{file,"io_lib_pretty.erl"},{line,656}]},{io_lib_pretty,cind_element,7,[{file,"io_lib_pretty.erl"},{line,726}]},{io_lib_pretty,cind_list,7,[{file,"io_lib_pretty.erl"},{line,696}]}]}}

相同的节在 ejabberd-17.03 上运行良好。

请在这里帮助我。

标签: xmppejabberdejabberd-module

解决方案


推荐阅读