2016-12-28 7 views
2

Я создал приложение erlang, используя обработчик http-сервиса для ковбоя. Приложение хранит данные в riak kv. Однако я не могу подключиться к моему узлу riak, чтобы возвращать данные для остальных api.Ошибка с riakc_pb_socket: start_link() с использованием rebar3 и Erlang

Когда я вызываю riakc_pb_socket: start_link ("127.0.0.1", 8087) Я получаю ошибки.

Ниже приведен фрагмент кода, где я делаю звонок для riak.

get_json(Req, State) -> 
    {ok, Pid} = riakc_pb_socket:start_link("127.0.0.1", 8087), 
    Body = riakc_pb_socket:is_connected(Pid), 
    {Body, Req, State}. 

Ниже приведена трассировка стека после возникновения ошибки.

=ERROR REPORT==== 28-Dec-2016::00:15:52 === 
    Error in process <0.359.0> on node '[email protected]' with 
    exit value: 
    {[{reason,undef}, 
    {mfa,{paddylenderapi_rest_handler,get_json,2}}, 
    {stacktrace, 
    [{riakc_pb_socket,start_link,["127.0.0.1",8087],[]}, 
    {paddylenderapi_rest_handler,get_json,2, 
     [{file, 
      "/home/oladipo/Projects/Erlang/PaddyLender/paddylenderapi 
    /_build/prod/lib/paddylenderapi/src/paddylenderapi_rest_handler.erl"}, 
     {line,37}]}, 
    {cowboy_rest,call,3, 
     [{file, 
      "/home/oladipo/Projects/Erlang/PaddyLender/paddylenderapi 
    /_build/default/lib/cowboy/src/cowboy_rest.erl"}, 
     {line,972}]}, 
    {cowboy_rest,set_resp_body,2, 
     [{file, 
      "/home/oladipo/Projects/Erlang/PaddyLender/paddylenderapi 
    /_build/default/lib/cowboy/src/cowboy_rest.erl"}, 
     {line,854}]}, 
    {cowboy_protocol,execute,4, 
     [{file, 
      "/home/oladipo/Projects/Erlang/PaddyLender/paddylenderapi 
    /_build/default/lib/cowboy/src/cowboy_protocol.erl"}, 
     {line,442}]}]}, 

Просмотр содержимого rebar.config ниже:

{erl_opts, [debug_info]}. 
     {deps, [ 
     {cowboy, {git, "git://github.com/ninenines/cowboy.git", {tag, "1.0.1"}}}, 
     {riakc, "2.5.*", {git, "https://github.com/basho/riak-erlang-client", {tag, "2.5.1"}}}, 
     {riak_pb, {git, "https://github.com/basho/riak_pb", {tag, "2.1.4.2"}}} 
    ] 
    }. 

    {plugins, [ 
     rebar3_run 
    ] 
}. 


{relx, [ 
     {release, {paddylenderapi, "0.0.1"},[paddylenderapi]}, 
     {dev_mode, true}, 
     {include_erts, false}, 
     {extended_start_script, true} 
    ] 
}. 

{overrides, 
[ 
    {override, rebar3_protobuffs_plugin, [{deps, [ {protobuffs, {git, "https://github.com/basho/erlang_protobuffs.git", {tag, "0.9.0"}}}]}]}, 

    {override, riak_pb, [ 
         {plugins, [{riak_pb_msgcodegen, 
            {git, "https://github.com/tsloughter/riak_pb_msgcodegen.git", 
            {ref, "dc51330"}}}, 
            {rebar3_protobuffs_plugin, 
            {git, "https://github.com/cmkarlsson/rebar3_protobuffs_plugin", 
            {tag, "0.1.1"}}}]}, 
         {provider_hooks, [{pre, [{compile, {protobuffs, compile}}, 
               {compile, riak_pb_msgcodegen}]}]}]} 
    ] 
}. 
+0

Я поддерживаю клиента Riak Erlang. Пожалуйста, откройте проблему в GitHub и укажите полный комплект кода, который воспроизводит эту проблему. Спасибо. https://github.com/basho/riak-erlang-client/issues –

+0

Спасибо, Люк. Сделаю. –

ответ

-1

Я предлагаю вам не riak_kv в части 'Приложения' в вашем paddylenderapi.app.src. И именно по этой причине это приложение не размещается в папке release lib. Таким образом, вы получаете ошибку undef.