如何将erlang cassandra客户端文件包含到ejabberd服务器中?

如何将erlang cassandra客户端文件包含到ejabberd服务器中?,erlang,cassandra,cql3,Erlang,Cassandra,Cql3,我需要在ejabberd服务器中使用erlang cassandra client()来记录消息。但是我可以单独运行seestar客户端。但是如果我将seestar文件包括到ejabberd src文件夹中,我会遇到函数_子句错误。此错误表明找不到gen_服务器的调用函数。请建议一些解决方案 The error when I debug the code is : (ejabberd@localhost)1> seestar_session_tests:session_test_().

我需要在ejabberd服务器中使用erlang cassandra client()来记录消息。但是我可以单独运行seestar客户端。但是如果我将seestar文件包括到ejabberd src文件夹中,我会遇到函数_子句错误。此错误表明找不到gen_服务器的调用函数。请建议一些解决方案

 The error when I debug the code is :
(ejabberd@localhost)1> seestar_session_tests:session_test_().
{foreach,#Fun<seestar_session_tests.0.112079720>,
         #Fun<seestar_session_tests.1.112079720>,
         [#Fun<seestar_session_tests.2.112079720>,
          #Fun<seestar_session_tests.3.112079720>,
          #Fun<seestar_session_tests.4.112079720>,
          #Fun<seestar_session_tests.5.112079720>]}
(ejabberd@localhost)2> seestar_session_tests:test_schema_queries(0.112079720).

** exception exit: {{function_clause,[{gen,call,
                                           [0.11207972,'$gen_call',
                                            {request,7,
                                                     <<0,0,0,95,67,82,69,65,84,69,32,75,69,89,83,80,...>>,
                                                     true},
                                            infinity],
                                           [{file,"gen.erl"},{line,146}]},
                                      {gen_server,call,3,[{file,"gen_server.erl"},{line,184}]},
                                      {seestar_session,request,3,
                                                       [{file,"seestar_session.erl"},{line,209}]},
                                      {seestar_session,perform,3,
                                                       [{file,"seestar_session.erl"},{line,156}]},
                                      {seestar_session_tests,test_schema_queries,1,
                                                             [{file,"seestar_session_tests.erl"},{line,33}]},
                                      {erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,576}]},
                                      {shell,exprs,7,[{file,"shell.erl"},{line,668}]},
                                      {shell,eval_exprs,7,[{file,"shell.erl"},{line,623}]}]},
                    {gen_server,call,
                                [0.11207972,
                                 {request,7,
                                          <<0,0,0,95,67,82,69,65,84,69,32,75,69,89,83,80,65,67,69,
                                            ...>>,
                                          true},
                                 infinity]}}
     in function  gen_server:call/3 (gen_server.erl, line 188)
     in call from seestar_session:request/3 (seestar_session.erl, line 209)
     in call from seestar_session:perform/3 (seestar_session.erl, line 156)
     in call from seestar_session_tests:test_schema_queries/1 (seestar_session_tests.erl, line 33)
调试代码时的错误是:
(ejabberd@localhost)1> 请参见Star_会话测试:会话测试()。
{foreach,#乐趣,
#有趣,
[#有趣,
#有趣,
#有趣,
#乐趣]}
(ejabberd@localhost)2> 参见Star_会话测试:测试模式查询(0.112079720)。
**异常退出:{function_子句,[{gen,call,
[0.11207972,$gen_call',
{请求,7,
,
对},
无穷大],
[{file,“gen.erl”},{line,146}]},
{gen_server,call,3,[{file,“gen_server.erl”},{line,184}]},
{见Star_会议,请求,3,
[{file,“seestar_session.erl”},{line,209}]},
{seestar_session,perform,3,
[{file,“seestar_session.erl”},{line,156}]},
{参见STAR_会话_测试,测试_模式_查询,1,
[{file,“seestar\u session\u tests.erl”},{line,33}]},
{erl_eval,do_apply,6,[{文件,“erl_eval.erl”},{line,576}]},
{shell,exprs,7,[{file,“shell.erl”},{line,668}]},
{shell,eval_exprs,7,[{file,“shell.erl”},{line,623}]},
{gen_服务器,呼叫,
[0.11207972,
{请求,7,
,
对},
无限]}
在gen_server函数中:call/3(gen_server.erl,第188行)
来自seestar_会话的呼叫中:请求/3(seestar_会话.erl,第209行)
来自seestar_会话的呼叫中:执行/3(seestar_会话.erl,第156行)
来自seestar\u会话\u测试的in调用:测试模式\u查询/1(请参阅STAR\u会话\u测试.erl,第33行)

您不应该直接调用
see star\u session\u tests
中的函数,而是通过Eunit库调用。请尝试以下方法:

eunit:test(seestar_session_tests, [verbose]).
(上述错误的确切原因是
请参见star\u session\u tests:test\u schema\u querys
需要一个pid,测试框架会给出它,但您使用浮点数调用它。)

Eunit测试也可以通过Rebar从公共线调用。切换到
seestar
目录,然后运行
rebar eunit

您可以使用的基于。 要集成,只需将其作为dep添加到钢筋配置文件:

{erlcass,“.*”,{git,“https://github.com/silviucpp/erlcass.git“,{tag,“v2.2”}}

然后在应用程序启动方法中初始化驱动程序或在app.config中使用以下命令:

{ erlcass, [ { cluster_options, [ {contact_points, <<"127.0.0.1">>}, {port, 9042}, {number_threads_io, 4}, {queue_size_io, 128000}, {max_connections_host, 5}, {pending_requests_high_watermark, 128000}, {tcp_nodelay, true}, {tcp_keepalive, {true, 1800}}, {keyspace, <<"keyspace_kere">>} ] } ] }. { 厄尔卡斯, [ { 集群(u)选项,, [ {联系点,}, {port,9042}, {number_threads_io,4}, {队列大小为128000}, {max_connections_host,5}, {挂起的请求\u高\u水印,128000}, {tcp_nodelay,对}, {tcp_keepalive,{true,1800}}, {keyspace,} ] } ] }.
你能告诉我你收到的错误信息吗?您可以编辑问题并将其添加到那里。我已更新了我的问题legoscia。嗨,legoscia,感谢您的快速回复,您的解决方案运行良好。再次感谢您的回答。