Проблемы с сервером имен узлов Erlang Jinterface в Windows
Я пытаюсь реализовать интерфейс для моей программы erlang, используя jinterface. Когда я вызываю команду OtpNode otpNode = new OtpNode(nodeName, cookie); Java бросает IOException с
java.io.IOException: сервер имен не отвечает на DESKTOP-GIR29G3 при публикации javanode.
Кажется, это не является общей проблемой для людей, поскольку я не мог найти ничего похожего в Интернете. Это локальный узел с именем узла "javanode" без полных остановок или тире. Почему возникла проблема с DNS на локальном узле?
Я попытался запустить узел erlang в каталоге, в котором запускается java-программа, а также запустить консоль erlang на моем компьютере, но я очень плохо знаком с erlang, так что это были просто дикие предположения о том, что должна работать какая-то виртуальная машина erlang.
Вот код, который может помочь:
public 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");
Ошибка из консоли:
Подключен к целевой ВМ, адрес: "127.0.0.1:54025", транспорт: "сокет" java.io.IOException: сервер имен не отвечает на DESKTOP-GIR29G3 при публикации javanode на 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.scase 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, чтобы выполнить окончательное соединение, если оно не работает:
статическое встроенное int connect0(int var0, InetAddress var1, int var2) создает исключение IOException;
Я что-то упускаю при настройке узла erlang? Я, конечно, не должен запускать его вручную? Я полностью отключил брандмауэр, чтобы проверить его. Как мне выяснить, почему в соединении было отказано?