0

Attempting to test msgpack as dependency in a simple release package using rebar in Erlang / OTP.

My folder structure is as follows

Project -> Apps -> myapp -> ebin -> src

            -> deps -> msgpack (folder)

            -> rebar (exe)

            -> rebar config

            -> rel -> reltool.config
                   -> files (folder)
                   -> mynode (folder)

Code snippet of the function & its handle_call:

num_pokes() ->
    gen_server:call(?MODULE, num_pokes).

handle_call(num_pokes, _From, State = #state{ num_pokes = PokeCount }) ->
        MP = msgpack:pack(PokeCount),
        io:format (" Message is packed : ~p~n", MP),
        MuP = msgpack:unpack_stream(MP),
        io:format (" Message is now UNpacked : ~p~n", MuP),
        io:format (" Pokecount : ~p~n", PokeCount),
    {reply, PokeCount, State};

Error showing: when num_pokes() is called

=ERROR REPORT==== 10-Apr-2015::12:44:53 ===
** Generic server myapp_server terminating 
** Last message in was num_pokes
** When Server state == {state,2}
** Reason for termination == 
** {'module could not be loaded',
       [{msgpack,pack,[2],[]},
        {myapp_server,handle_call,3,[{file,"src/myapp_server.erl"},{line,32}]},
        {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}]}]}
** exception exit: {{undef,
                        [{msgpack,pack,[2],[]},
                         {myapp_server,handle_call,3,
                             [{file,"src/myapp_server.erl"},{line,32}]},
                         {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,[myapp_server,num_pokes]}}
     in function  gen_server:call/2 (gen_server.erl, line 182)

2 Answers2

0

Pass -pa deps/msgpack/ebin to erl as command-line arguments. Then it will find the compiled modules.

0

Folder structure pointing towards mspack was shown by me as ./deps (dependencies folder). It should be ./deps/msgpack