Jsf + erro http 500

5 respostas
ATEN

Oi pessoal,
estou desenvolvendo uma aplicação e estou querendo testar os possíveis erros que o servidor pode acusar.

código da configuração do meu web.xml

<error-page> 
		<error-code>404</error-code> 
		<location>/notFoundPage.jsf</location> 
	</error-page> 
	
	<error-page> 
		<error-code>500</error-code>
		 <location>/error.jsf</location> 
	</error-page>

Consegui testar o erro 404 e está funcionando numa boa.
Mas como faço para simular o erro 500?
E outra coisa, somente com esses dois códigos de erro eu consigo capturar todos os servlets exceptions que podem acontecer? ou é necessário colocar mais alguma configuração?

[]s

5 Respostas

Dapcapix

Muito boa a pergunta, vou acompanhar o tópico.

O meu erro 500 ele captura.

Mas quera saber quais erros são possíveis.

ATEN

Dapcapix, como vc fez para testar seu erro 500 no sistema?

Dapcapix

Coloque um erro no seu xhtml.

Exemplo:

Deixando de completar um form, componente com o mesmo id, etc…

Tente ai.

ATEN

Dapcapix, funcionou mesmo a sua sugestão, mas como eu faço para prever um java.sql.SQLException ou outros tipos de exceções gerados pelo sistema???

[]s

Dapcapix

Opa, que bom que funcionou.

Então, eu faço assim:

Não tem uma formula mágica para prever, nunca vi um programa 100% perfeito. Da para a gente tentar descobrir problemas futuros.

Já ouviu falar sobre log4j? Coloque em um ponto do seu sistema (coloco sempre na camada controller). Ai se ocorrer um problema ajuda bastante a solucionar.

Exemplo:

public void atualizar(Nota nota) {
		try {
			notaDAO.salvar(nota); // aqui se ocorrer um erro ao buscar os dados com o hibernate.
		} catch (Exception e) {
			logger.warn("Ocorreu um erro ao atualizar a nota: " + nota.getId() + "" + nota.getTitulo());
			logger.warn(e.getMessage());
		}
}

Assim fica mais fácil de rastrear o problema.

Só que esse erro é para o programador, você tem que mostrar uma mensagem mais amigável para o usuário.

No ManagedBean coloque algo do tipo:

FacesMessage facesMessage = new FacesMessage(
					"Mensagem do erro que quer mostrar para o usuário!");
context.addMessage(null, facesMessage);

Espero ter ajudado.

Criado 26 de maio de 2012
Ultima resposta 28 de mai. de 2012
Respostas 5
Participantes 2