[JSF] ViewExpiredException – Como solucionar?

15 10 2010

Problema:

Ao ativar alguma ação na aplicação após deixa-la algum tempo parada(sem ações),  a seguinte exceção aparece para o usuário.

javax.faces.application.ViewExpiredException:

Solução:

Existe como configurar o  estado da aplicação para ser salvo no cliente(browser) e não mais no lado do servidor , assim a view não é expirada. Esta opção deve ser escolhida com sabedoria, pois, existem situações que pode ser prejudicial dependendo do cenário em que aplicação esta.

Para configurar esta opção basta colocar o código abaixo no arquivo web.xml:

<context-param>
<description>
State saving method: “client” or “server” (= default) See
JSF Specification 2.5.2
</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>

Diferença:

Método server

  • há um maior consumo de memória no lado servidor pois o estado esta sendo mantido na sessão por usuário;
  • problemas com o back-button do browser (é necessário mais consumo de memória para resolver este problema);
  • baixo consumo de banda na rede;
  • baixo consumo de memória no cliente;
  • uso de cpu no servidor é baixo;
  • clustering – mover a sessão para um outro nó do cluster (muitos dados na sessão);
  • melhora comunição via AJAX pois não é preciso reenviar o estado da view ao servidor;
  • páginas carregam mais rapidamente (ou pode-se dizer normalmente?);

Método client

  • menos uso da session e consequentemente menos consumo de memória no lado servidor;
  • sem consumo de memória entre requests;
  • corrige problemas de refresh (tecla F5) e botão voltar (back button) do browser;
  • resolve problemas de concorrência;
  • melhora escalabilidade da aplicação;
  • alto consumo de banda da rede;
  • maior overhead de cpu no servidor e cliente;
  • maior consumo de memória no lado cliente;
  • problemas de segurança;
  • excelente na fase de desenvolvimento pois conseguimos manter o estado da view mesmo depois de restartar o servidor;
  • páginas carregam ligeiramente mais lentas (isso depende muito da complexidade e quantidade de componentes na página);

* Os itens em vermelho indicam as desvantagens

FONTE: FONTE 1 FONTE 2

Anúncios

Ações

Information

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: