2

我正在尝试使用 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 节点时遗漏了什么吗?我当然不必手动启动它?我已经完全禁用了我的防火墙来测试它。如何找出连接被拒绝的原因?

4

0 回答 0