Что означает исключение "javax.servlet.jsp.JspException: Broken pipe"?

Я получаю следующую ошибку:

javax.servlet.jsp.JspException: Broken pipe

Теперь я видел вопросы/ответы относительно исключения сокета, но эта ошибка исходит из другого пакета. Любая помощь очень ценится. Кстати, я вижу довольно много этих ошибок в журналах weblogic Node в веб-приложениях struts, и я думаю, что это связано с тем, что конечные пользователи закрывают свой веб-браузер до того, как страница перезагрузит/выполнит следующий шаг (транзакция базы данных, которая требуется довольно много времени для выполнения, от 30 секунд до 4 минут).

Ответ 1

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

Вы совершенно правы. Это исключение будет вызываться, когда клиент прерывает текущий запрос, перемещаясь, закрывая вкладку/окно, обновляя запрос и т.д. , пока запрос все еще запущен. Другими словами, клиент внезапно закрыл соединение, и серверная сторона больше не может писать/вымывать любой байт. Обычно он имеет значение IOException в качестве основной причины, обычно в качестве атрибута определенного подкласса servletcontainer, такого как ClientAbortException в случае Tomcat и клонов. Если вы исследуете весь стек в журналах сервера, вы найдете его где-то внизу.

Ответ 2

Я уверен, что базовый пакет использует внутренние каналы для передачи результата от a до b. Теперь B (ServletOutputStream) закрывается, а другой конец канала уведомляет об этом, бросая это исключение.

Ответ 3

HTTPRequest обрабатывается цепочкой сервлетов, которые связаны друг с другом с помощью труб. Когда браузер отказывается от соединения, а сокет закрывается, это задерживается уровнем управления цепочкой сервлетов. Сервлет, вероятно, косвенно захватывает закрытое исключение сокета и торчит его как сломанную трубу. Посмотрите на любое завернутое исключение для более подробной информации.

Ответ 4

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