Я использую два узла, который запускает вычисления из IDE (Intellij IDEA) и другой, который уже запущен на консоли (удаленная отладка включена). Я отлаживаю оба из IDE.PrintWriter mystery in Ignite
Я не использую peerClassLoading, я поместил jar в libs из консольного узла.
Существует строка кода: System.out.println(x);
- который печатает хорошо в обоих. Но следующие строки:
getPrintWriter().println(x);
getPrintWriter().flush();
Работает только на узле, запущенном из среды IDE. PrintWriter обертывает System.out. Консольный узел бросает IOException - «дескриптор файла недействителен» во время флеша.
Вот скриншот StackTrace:
и вот соответствующая часть кода с узлом консоли:
По предложению, Я перезагрузился, и проблема была решена. Вот скриншот:
сериализации Контекст
Вот часть кода, который запускает вычисление воспламеняют:
Для узел на консоли JVM, ConsoleClient
получает seriali zed и т. д. содержащиеся классы (команды, слушатели и их авторы и т. д.). В списке clients
все объекты ConsoleClient
имели своих авторов печати в качестве оберток System.out
, поэтому в идеале заметный блок в runnable не нужен. Обратите внимание: если этот отмеченный блок удален, узлы IDE печатаются правильно, но не консольный узел.
Можете ли вы показать полный след? –