Браузер показывает неполные данные JSP - PullRequest
2 голосов
/ 24 марта 2010

Я использую JSP, Struts 1.3 и Apache Tomcat 5.5. По какой-то причине ответ от JSP усекается, а полная информация не отображается. Класс, сгенерированный из проблемной JSP-страницы, выглядит просто отлично. В логах Каталины нет ошибок. Я понятия не имею, как эту проблему можно исправить.

Обновление: Я уверен, что ищу правильный журнал на наличие ошибок ($ CATALINA_HOME / logs). Кроме того, я пишу некоторые сообщения журнала в пользовательский файл журнала. Там нет никаких упоминаний об этой ошибке в обоих из них. Ошибка происходит только на одной конкретной странице, а содержимое усекается в одном и том же месте. Если я печатаю один и тот же объект несколько раз, вывод страницы выглядит идеально. Если я удалю некоторые выходы до этого места, граница среза будет сдвинута: Проблемы с выделением памяти? Размер буфера страницы не влияет на вывод страницы, я проверил. На этой странице я использую директиву include, и я встретил некоторую информацию о том, что, если размер сгенерированного сервлета превышает 64 КБ, ваша JSP-компиляция, скорее всего, не удастся. Сервлет сгенерирован просто отлично и я застрял.

Ответы [ 2 ]

0 голосов
/ 20 января 2016

У меня была похожая проблема, когда в браузере отображается (загружается) только часть файла JSP (Debugger / Pagesource). Беспокойство вызывало то, что это не всегда происходило.

Я обнаружил, что NullPointerException было выброшено из-за тайм-аута соединения, который в конечном итоге отвечал за отправку только части JSP обратно сервером.

Итак, как советовали в комментариях другие, внимательно изучите ваши журналы.

0 голосов
/ 25 марта 2010

Согласно вашему обновлению:

Если я удалю некоторые выходы до этого места, граница среза будет сдвинута

Похоже, что-то пошло не так во время закрытия выходного потока. Я бы проверил всю цепочку фильтров, если нет какого-либо фильтра, который заменяет HttpServletResponse пользовательской реализацией, которая в свою очередь плохо реализована, например он неправильно делегирует метод close() «исходному» выходному потоку / модулю записи. Попробуйте отключить фильтр и протестировать его. Также попробуйте добавить следующую строку в bottom JSP, чтобы посмотреть, решит ли она проблему:

<% response.getWriter().flush(); %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...