Играем в Minecraft с другом через Radmin, вылетает со словами Удаленный хост разорвал соединение. В чем может быть

Когда «java.io.IOException: соединение reset by peer» выбрано?

Этот журнал с игрового сервера, реализованного с использованием netty. Что может вызвать это исключение?

java.io.IOException: соединение reset с помощью peer

Другая сторона резко прервала соединение в середине транзакции. Это может иметь много причин, которые не контролируются со стороны сервера. Например. конечный пользователь решил закрыть клиент или внезапно изменить сервер, все еще взаимодействуя с вашим сервером, или программа клиента потерпела крах, или Интернет-соединение с конечным пользователем снизилось, или компьютер конечного пользователя разбился, и т.д. и т.д.


8 ответов

распечатайте полное имя файла или выполните шаг в отладчике. Когда я запутываюсь в таких ошибках, это означает, что мои предположения и ожидания не соответствуют реальности. Убедитесь, что вы можете посмотреть что такое путь; это поможет вам понять, где вы ошиблись.

Если каталог ../.foo/bar/ не существует, вы не можете создать файл там, поэтому убедитесь, что вы сначала создаете каталог.

попробуйте что-то вроде этого:

будьте осторожны с разрешениями, вероятно, у вас нет некоторых из них. Вы можете увидеть его в настройках — > приложения — > имя приложения — > разрешения — > активный, если нет.

Permissions app

вы можете использовать Apache Commons IO ‘ s пакета fileutils.openOutputStream(файл) метод. Он имеет хорошие сообщения об исключениях, когда что-то пошло не так, а также создает необходимые родительские каталоги. Если все было правильно, вы сразу получаете свой OutputStream-очень аккуратно.

Если вы просто хотите файл FileUtils.touch(File) вместо.

File.isFile() is false если файл / каталог не существует, поэтому вы не можете использовать его для проверки того, пытаетесь ли вы создать каталог. Но это не первый вопрос.

проблема в том, что промежуточные каталоги не существуют. Вы хотите позвонить f.mkdirs() первый.

У меня такая же проблема при использовании rest-easy. После поиска, пока я понял, что эта ошибка произошла, когда нет места сохранить временные файлы. Поэтому в tomcat вы можете просто создать tomcat-root / temp.

2 ответа

Мне просто нужно установить пользовательский агент

Добавьте сюда дополнительную информацию на случай, если это поможет другим.

Во-первых, базовая техника, приведенная в других ответах, верна: когда вы получаете ошибку HTTP 403 из программы Java (например, анализатора XML), которая пытается получить доступ к ресурсу HTTP, но ввод того же URI в ваш веб-браузер является успешным , то вам может потребоваться настроить заголовки запросов, которые вводят сайт в заблуждение, заставляя думать, что запрос поступает из браузера.

Я нашел один из текущих примеров, где это происходит, — это схема по адресу https: //www.musicxml .org / xsd / xml.xsd

Если вам нужен единственный файл, и вы вызываете синтаксический анализатор для этого файла напрямую, вы можете создать InputSource «вручную» и передать его синтаксическому анализатору XML.

Предполагая, что то, что вы делаете, — это синтаксический анализ XML, вы можете следовать коду, предложенному @zsbappa:

Но если вы читаете файл через XSLT-процессор, такой как Saxon, или если файл содержит ссылки на другие файлы, которые XML-синтаксический анализатор также должен прочитать (например, DTD, внешние сущности или документы схемы), то это не совсем так. легко. Что вам нужно сделать в этом случае, так это настроить EntityResolver на анализаторе. Обычно это выглядит примерно так:

Если вы вызываете Saxon, а Saxon вызывает синтаксический анализатор XML, вы можете передать свой EntityResolver в Saxon либо в качестве параметра в командной строке Transform ( -er:classname ), либо в качестве параметра в саксонский Configuration . Например:

Ответы 1

Вы видите это сообщение, потому что Spring WebFlux не имеет надлежащего способа отличить обычную отмену потока SSE от неожиданного закрытия соединения, например, из-за проблем с сетевым подключением.

Мы даже фильтруем некоторые типичные сообщения, такие как «сломанная труба», но я предполагаю, что вы находитесь в окнах, и сообщения об исключениях локализованы, поэтому мы не можем сделать это надежным способом.

Тем не менее, как часть SPR-16688, который будет доступен в Spring Framework 5.0.6 / Spring Boot 2.0.2, мы улучшили ведение журнала для такого варианта использования, чтобы сделать его более актуальным:

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector