我正在尝试使用jinterface为我的erlang程序实现一个接口。当我调用命令OtpNode otpNode = new OtpNode(nodeName,cookie); java抛出IOException与
java.io.IOException:发布javanode时,名称服务器在DESKTOP-GIR29G3上没有响应。
对于我来说,这似乎不是人们常见的问题,因为我在网上找不到任何类似的东西。这是一个本地节点,节点名称为“ javanode”,没有句号或破折号。为什么本地节点上会出现DNS问题?
我尝试在启动Java程序的目录中启动erlang节点,以及在我的PC上启动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:发布javanode时,名称服务器未在DESKTOP-GIR29G3上响应 在com.stellar.base.schedule.com.ericsson.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:连接被拒绝:connect
最终的来源是本机的DeulSocketImpl类,我想在Windows上调用该类以完成最终连接thingamabob,但失败:
静态本机int connect0(int var0,InetAddress var1,int var2)引发IOException;
我在设置erlang节点时缺少什么吗?我当然不必手动启动它?我已经完全禁用防火墙以对其进行测试。我如何找出为什么连接被拒绝?