В настоящее время я программирую JSF на Websphere 8.0 и сталкиваюсь с проблемой, и я думаю, что это из-за нашей кластеризации. У нас есть два узла, и после того, как я был в течение некоторого времени, моя проблема не возникала.Проблема с кластером Websphere 8 и JSF2
Моя проблема в том, что мой после отправки через commandButton заканчивается javax.faces.application.ViewExpiredException.
Также в StackTrace перед этим я нашел это:
View State cannot be reconstructed
javax.faces.FacesException: javax.faces.application.ViewExpiredException
at org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:496)
at org.apache.myfaces.shared_impl.util.StateUtils.reconstruct(StateUtils.java:378)
Так что я думаю, есть что-то не так с обработкой между двумя узлами.
В моей web.xml я поставил:
<distributable />
и
<env-entry>
<env-entry-name>jsf/ClientSideSecretKey</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>SRe1FY2HKwBTOtT5KrtmiSoOzws+NA9/yX191wMFn9o=</env-entry-value>
</env-entry>
как некоторые другие упомянутые в других потоках, но проблема все еще остается.
Возможно ли, что какая-то конфигурация будет выполнена внутри Websphere?
Независимо от этого, я никогда не видел узел узла автоматического узла, если он опускается, пока пользовательский сеанс в настоящее время существует на одном. Брандмауэр/LB поставит их на узел №1, и все его запросы и т. Д. На основе файлов cookie будут перенаправлены туда? и если сервер остановлен/запущен, их сеанс мертв, поэтому просмотр истек? и в следующий раз, когда они войдут в LB, он отправит их на узел «вверх»/сервер? – VeenarM
WebSphere ND - и другие серверы - поддерживают именно это, через сеансовый переход. В этом случае, если узел опускается, сеанс из отказавшего узла может быть поднят и продолжен другим узлом. (Это мотивация для кластеризации ...) – wtlucy
Радости, возможно, правильно настроенной среды: P – VeenarM