2016-12-28 6 views
2

J'ai créé une application erlang en utilisant le gestionnaire http cowboy rest. L'application stocke les données dans riak kv. Cependant, je suis incapable de me connecter à mon noeud riak pour renvoyer des données pour l'API restante.Erreur avec riakc_pb_socket: start_link() utilisant rebar3 et Erlang

Lorsque j'appelle riakc_pb_socket: start_link ("127.0.0.1", 8087) j'obtiens des erreurs.

Voici l'extrait de code de l'endroit où je fais l'appel à 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}. 

Voici la trace de la pile lorsque l'erreur se produit.

=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}]}]}, 

Voir le contenu de mon rebar.config ci-dessous:

{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

Je supporte le client Riak Erlang. S'il vous plaît ouvrir un problème dans GitHub et fournir un ensemble complet de code qui reproduit ce problème. Je vous remercie. https://github.com/basho/riak-erlang-client/issues –

+0

Merci Luke. Ça ira. –

Répondre

-1

Je vous suggère de ne pas avoir riak_kv dans une partie 'applications dans votre paddylenderapi.app.src. Et c'est la raison pour laquelle cette application ne place pas dans le dossier lib de la librairie. Donc, vous obtenez l'erreur undef.