Я пытаюсь реализовать интерфейс для моей программы 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? Я, конечно, не должен запускать его вручную? Я полностью отключил брандмауэр, чтобы проверить его. Как выяснить, почему в соединении было отказано?