Проблемы с сервером имен узлов Erlang Jinterface в Windows - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь реализовать интерфейс для моей программы erlang, используя jinterface. Когда я вызываю команду OtpNode otpNode = new OtpNode (nodeName, cookie); Java выдает IOException с

java.io.IOException: сервер имен не отвечает на DESKTOP-GIR29G3 при публикации javanode.

Кажется, это не является обычной проблемой для людей, поскольку я не мог найти ничего похожего в Интернете. Это локальный узел с именем узла "javanode" без полных остановок или тире. Почему возникла проблема с DNS на локальном узле?

Я попытался запустить узел erlang в каталоге, где запущена java-программа, а также запустить консоль erlang на моем компьютере, но я новичок в erlang, так что это были просто дикие предположения о том, что должна работать какая-то виртуальная машина erlang .

Вот код, который может помочь:


публичный 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.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) at java.lang.Thread.run (Thread.java:745)

Заранее спасибо

Dale


ОБНОВЛЕНИЕ ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Я вошел в погружение, чтобы попытаться выяснить, где именно поезд покидает рельсы, но я беру дикие догадки относительно того, что я должен отметить как потенциальные проблемы. Я просто хочу добавить дополнительную информацию, чтобы помочь:

В OptEpmd перед генерацией исключения io перехватывается следующее

java.net.ConnectException: в соединении отказано: соединиться

Последний источник - это родной класс DeulSocketImpl, который, как я полагаю, обращается к Windows, чтобы выполнить окончательное соединение, например, amabobob, и оно терпит неудачу:

статическое собственное int connect0 (int var0, InetAddress var1, int var2) выдает IOException;

Я что-то упустил при настройке узла erlang? Я, конечно, не должен запускать его вручную? Я полностью отключил брандмауэр, чтобы проверить его. Как выяснить, почему в соединении было отказано?

...