通过 Jinterface 调用 gen_server?
Posted
技术标签:
【中文标题】通过 Jinterface 调用 gen_server?【英文标题】:Make a call to gen_server via Jinterface? 【发布时间】:2014-06-11 01:59:10 【问题描述】:如何拨打这样的电话:
order_cat(Pid, Name, Color, Desc) ->
gen_server:call(Pid, order, Name, Color, Desc).
到这样的事情:
handle_call(order, Name, Color, Desc, _From, Cats) ->
if Cats =:= [] ->
reply, make_cat(Name, Color, Desc), Cats;
Cats =/= [] ->
reply, hd(Cats), tl(Cats)
end;
handle_call(terminate, _From, Cats) ->
stop, normal, ok, Cats.
通过使用 java 和 Jinterface 而不是第一个代码?我知道如何使用 Jinterface 向 pid 发送消息,但是我有一个处理它的接收语句。我想改用 OTP,但我不明白怎么做。
【问题讨论】:
【参考方案1】:有两种方法可以通过 Jinterface 连接到您的 Erlang 代码:消息和 RPC。
RPC 记录在这里:http://www.erlang.org/doc/apps/jinterface/jinterface_users_guide.html#id57655
请注意,使用消息不是“非 OTP”。如果你有一个gen_server,你可以直接给它发消息,并在handle_info函数中接收消息。
【讨论】:
以上是关于通过 Jinterface 调用 gen_server?的主要内容,如果未能解决你的问题,请参考以下文章
将来自 JInterface Java 应用程序的二进制响应转换回 Elixir 中的字符串列表
从 Mod:handle_cast 调用 gen_server:cast