| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > IllegalStateException |
| Автор: oson 20.12.2007, 10:54 | ||||||||||||
| Господа! Подскажите пожалуйста, в чем причина такого exception? Используется JSF и JasperReports. На страничке имеется линк
В myBean
В faces-config.xml
В web.xml
В ReportServlet
В месте OutputStream outputStream = response.getOutputStream(); выпадает exception
Где искать причину? |
| Автор: ivg 20.12.2007, 12:49 | ||||
| По видимому навигация в данном случае делается через RequestDispatcher контейнера. То есть JSF предполагает, что пересылаемый запрос пройдёт как JSF запрос (через JSF сервлет), поэтому оставляет свою обёртку вокруг HttpServletResponse (ViewHandlerResponseWrapper), но и подчищает при этом что то в JSF контексте. А может RequestDispatcher вообще отдаёт обработку другому потоку (тогда в обработке ReportServlet, JSF контекст вообще отсутствует ибо он хранится в ThreadLocal, а создаётся в JSF сервлете). Вот это то и не нравится ViewHandlerResponseWrapper. отсюда и IllegalStateException. Попробуйте в faces-config.xml поставить <redirect/>
Я думаю это должно сработать, хотя не очень вариант - гонять туда сюда лишние запросы по сети. Вобщем я бы предложил выдавать Report Content в myBean в showReport(). Здесь все будет аналогично, только в конце showReport() надо добавить
|