Получение предупреждения от JSF: ответ был уже зафиксирован к тому времени, когда мы попытались установить исходящий файл cookie для флэш-памяти.
10633 просмотра
4 ответа
У меня есть page1.jsf, на этой странице у меня есть commandButton, который помещает объект в ELFlash и перенаправляет на страницу page2.jsf. На этой странице я восстанавливаю объект с помощью ELFlash. Все отлично работает Но пока пользователь остается в page2.jsf, для каждого ajax-запроса tomcat показывает следующее предупреждение:
20/07/2013 09:43:37 com.sun.faces.context.flash.ELFlash setCookie
WARNING: JSF1095: The response was already committed by the time we tried to set the outgoing cookie for the flash. Any values stored to the flash will not be available on the next request.
Что это на самом деле значит?
Автор: Mateus Viccari Источник Размещён: 12.11.2019 09:06Ответы (4)
7 плюса
Вместо использования фильтра, как упоминалось в ответе @Rafal K, вы также можете увеличить размер буфера ответов, установив параметр контекста в web.xml
<!-- increase buffer size to avoid JSF1095 errors -->
<context-param>
<param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
<param-value>131072</param-value>
</context-param>
Размер указывается в байтах и должен быть больше вашей самой большой страницы. Вы можете легко проверить размер своих страниц в Firefox, щелкнув правой кнопкой мыши и выбрав View Page Info
.
4 плюса
Я думаю, что эта проблема может быть связана с чанкингом http. Решение состоит в том, чтобы увеличить размер буфера ответа. После этого файлы cookie будут установлены правильно, и Flash Scope также должен работать.
Используйте этот код:
public class FlashScopeFixerFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// Below line: response.getWriter() must be invoked to buffer size setting work. Just DO NOT touch this!
response.getWriter();
HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper((HttpServletResponse) response);
wrapper.setBufferSize(10000000);
chain.doFilter(request, wrapper);
}
@Override
public void init(FilterConfig arg0) throws ServletException {}
@Override
public void destroy() {}
}
И в web.xml:
<filter>
<filter-name>FlashScopeFixerFilter</filter-name>
<filter-class>dk.sd.medarbejderdata.common.FlashScopeFixerFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FlashScopeFixerFilter</filter-name>
<url-pattern>*.xhtml</url-pattern>
</filter-mapping>
Автор: Rafal K
Размещён: 14.02.2014 03:40
1 плюс
Это предупреждение может быть вызвано, если вы используете Flash для ajax-запросов. Вероятно, вы пытаетесь выполнить перенаправление с ajax, установленным в true, а в слушателе вы помещаете значения во Flash. Проверьте, нужен ли ajax, и установите для него значение false для перенаправлений.
Только не смешивайте ajax=true
командные кнопки со вспышкой, и вы будете свободны от этого предупреждения.
-1 плюса
Вспышка, как следует из названия, должна быть своего рода временной концепцией контейнера между жизненным циклом jsf. Суть в следующем: объект, сохраненный во флэш-памяти, будет представлен пользователю в следующем ближайшем представлении, с которым он столкнется (помните, что jsf следует за mvc), поэтому после его использования он исчезнет, а именно будет удален.
Я думаю, именно поэтому вы получаете такую ошибку, и это не связано напрямую с мохаррой.
Автор: LMG Размещён: 18.08.2013 07:49Вопросы из категории :
- jsf Получение значения идентификатора сеанса из запроса JSF
- jsf Условно требуется проверка JSF в форме a4j
- jsf Атрибут привязки вызывает дублирование идентификатора компонента, найденного в представлении
- jsf commandButton / commandLink / ajax действие / метод слушателя не вызван или входное значение не установлено / обновлено
- jsf Format date in <f:selectItem(s) itemLabel> using DateTimeConverter
- cookies Как бы вы внедрили аутентификацию на основе FORM без резервной базы данных?
- cookies Как настроить cookie HttpOnly в tomcat / java webapps?
- cookies Как однозначно идентифицировать компьютеры, посещающие мой веб-сайт?
- cookies Мне нужно получить все куки из браузера
- cookies Различия между куки и сессиями?
- jsf-2 JSF возвращает пустую / непарсированную страницу с простым / необработанным исходным кодом XHTML / XML / EL вместо отрисованного вывода HTML
- jsf-2 JSF 2.0 Как связать CSS из папки ресурсов
- jsf-2 Как динамически добавлять компоненты JSF
- jsf-2 javax.faces.application.ViewExpiredException: представление не может быть восстановлено
- flash-scope Получение предупреждения от JSF: ответ был уже зафиксирован к тому времени, когда мы попытались установить исходящий файл cookie для флэш-памяти.
- flash-scope flash.keep & flash.setKeepMessages (true) при перенаправлении
- flash-scope Предупреждение об использовании Flash и Flash не удаляются после перенаправления
- flash-scope Почему flash.keep () удаляет ключ, если он находится в бине, но не в EL на странице Facelets?
- flash-scope Как работает цепочка методов в # {flash.keep.message} в языке выражений?