2013-11-06 3 views
1

Мы используем JSF с Primefaces на IBM Websphere 8. Моя проблема заключается в том, что если у меня больше разговоров в JSF, срок действия ViewState истекает. Если пользователь работает с двумя цепочками и перемещается на многие страницы, буфер для окон просмотра (по умолчанию 20 слотов) заполнен, а viewStates другого сеанса связи удаляются. Итак, если я вернусь к первому разговору, viewState там нет, и я больше не могу работать над этим разговором.JSF ViewState with Conversations

Есть ли возможность сохранить ViewStates в разговоре или в любом другом обходном пути? Установка javax.faces.STATE_SAVING_METHOD до клиент - не лучшее решение, я думаю. Увеличение org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION драматически также не очень хорошее решение из-за многих ожидаемых сессий.

+0

* Настройка javax.faces.STATE_SAVING_METHOD для клиента - не лучшее решение, я думаю *, почему вы так думаете? –

+0

Потому что это вызывает много трафика? – anm

+0

Вы измерили, сколько трафика вы получите от него, и заявили, что это не будет решением? –

ответ

0

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

+0

Просто для вас информация: вам нужно больше одного viewState, если вы обрабатываете больше запросов параллельно или вы не обновляете viewstate на странице. Нам нужно больше ViewStates, например, для Dashboards, Downloads, Deffered Загрузка и т. Д. – anm