It is recommended to first define the interface jar using Java, and use the erlanalysis tool to parse Java interfaces into Erlang lib.
Add dubblerl to your project’s rebar.config
{deps, [
{dubboerl, {git, "https://github.com/apache/dubbo-erlang.git", {branch, "master"}}}
]}.
erlang.mk
Build ToolTo be added
Suppose the interface lib you exported is called dubbo_service
.
dubbo_service
lib
into the project’s apps
directory.{deps, [
{dubboerl, {git, "https://github.com/apache/dubbo-erlang.git", {branch, "master"}}},
{dubbo_service,{git,"${INTERFACE_LIB_URL}",{branch,"master"}}} %% replace ${INTERFACE_LIB_URL} with your lib git repo URL
]}.
Please reference Reference Config
dubbolib
in Your ProjectIt is need you to
dubboerl:init().
Request = #userInfoRequest{requestId = 123, username = "testname"},
{ok,RequestRef,Response,RpcContent} = userOperator:queryUserInfo(Request,#{sync => true}).
If an error occurs, the response is {error,Reason}
.
Default is Async call.
Request = #userInfoRequest{requestId = 123, username = "testname"},
{ok,RequestRef} = userOperator:queryUserInfo(Request).
%% you can receive the message after.
handle_cast({msg_back,RequestRef,Response,RpcContent}, State).
Refer to the project dubboerl_demo