我正在尝试使用 jinterface 为我的 erlang 程序实现一个接口。当我调用命令 OtpNode otpNode = new OtpNode(nodeName, cookie); java抛出一个IOException
java.io.IOException:发布 javanode 时,名称服务器在 DESKTOP-GIR29G3 上没有响应。
对于人们来说,这似乎不是常见的问题,因为我在网上找不到类似的东西。它是一个本地节点,节点名称为“javanode”,没有句号或破折号。为什么本地节点上会出现 DNS 问题?
我已经尝试在 java 程序启动的目录中启动一个 erlang 节点,以及在我的电脑上启动 erlang 控制台,但我对 erlang 很陌生,所以这些只是一些 erlang VM 必须运行的疯狂猜测。
以下是可能有帮助的代码:
公共 Erlterface() {
Thread t = new Thread(new Runnable() {
public void run() {
setupMBox();
}
});
t.start();
}
private void setupMBox()
{
try {
String nodeName = "javanode";
String cookie = "jinterface";
//String[] names = OtpEpmd.lookupNames();
OtpNode otpNode = new OtpNode(nodeName, cookie); //CRASH HAPENS HERE
OtpMbox Mbox = otpNode.createMbox("javaserver");
来自控制台的错误:
连接到目标 VM,地址:'127.0.0.1:54025',传输:'socket' java.io.IOException:在 com.stellar.base.schedule.com.ericsson 发布 javanode 时,名称服务器在 DESKTOP-GIR29G3 上没有响应。 otp.erlang.OtpEpmd.r4_publish(OtpEpmd.java:344) 在 com.stellar.base.schedule.com.ericsson.otp.erlang.OtpEpmd.publishPort(OtpEpmd.java:141) 在 com.stellar.base.schedule。 com.ericsson.otp.erlang.OtpNode$Acceptor.publishPort(OtpNode.java:784) 在 com.stellar.base.schedule.com.ericsson.otp.erlang.OtpNode$Acceptor.(OtpNode.java:776) 在 com .stellar.base.schedule.com.ericsson.otp.erlang.OtpNode.init(OtpNode.java:232) 在 com.stellar.base.schedule.com.ericsson.otp.erlang.OtpNode.(OtpNode.java:196 ) 在 com.stellar.base.schedule.com.ericsson.otp.erlang.OtpNode.(OtpNode.java:149) 在 com.stellar.base.schedule。Erlterface.setupMBox(Erlterface.java:40) 在 com.stellar.base.schedule.Erlterface.access$000(Erlterface.java:16) 在 com.stellar.base.schedule.Erlterface$1.run(Erlterface.java:26)在 java.lang.Thread.run(Thread.java:745)
提前致谢
戴尔
更新附加信息:
我进行了一次潜水,试图找出火车离开铁轨的确切位置,但我正在疯狂猜测我应该将哪些标记为潜在问题。我只想在此处添加一些其他信息以提供帮助:
在 OptEpmd 中,在抛出 io 异常之前捕获以下内容
java.net.ConnectException:连接被拒绝:连接
最终来源是本机 DeulSocketImpl 类,我想它会在 Windows 上调用以执行最终连接 thingamabob 广告,但它失败了:
静态原生 int connect0(int var0, InetAddress var1, int var2) 抛出 IOException;
我在设置 erlang 节点时遗漏了什么吗?我当然不必手动启动它?我已经完全禁用了我的防火墙来测试它。如何找出连接被拒绝的原因?