Что означает исключение "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
Это происходит, когда пользователь нажимает кнопку остановки или выходит из системы или иным образом преждевременно прерывает соединение. Мы можем игнорировать это исключение.