quinta-feira, 6 de maio de 2010

[java-br] Tratando exceções no JSF

·

 

Fala galera,

Eu aqui de novo. Trago aqui um item que é muito discutido por aí mas
confesso que estou apanhando de tal.
Tratamento de exceções em JSF. Confesso que aqui sinto falta das global
exceptions do Struts.

Vi por aí diversas soluções: ServletWrapper, ActionListener, página JSP
entre outras, porém nenhuma delas eu consegui colocar para rodar.
O ServletWrapper dava erro na Factory, o ActionListener não me permite
receber os erros de JSF ou Ajax e o JSP não acho limpo logar as exceções.
Sim eu vou logar a exceção recebida também na WEB caso ela não seja uma
exceção minha, pois sendo, já foi logada no serviço.

Alguém pode me dar uma dica de como resolver? Eu preciso de alguma forma
redicionar no meio de qualquer fase do ciclo ou execução de um listener para
uma outra página. Como posso fazer?
Estou usando JSF 1.2 e MyFaces 1.2.8.

Consegui fazer com que o erro fosse direcionado para uma classe
ErrorHandler, porém não consegui de lá redirecionar. O código comentado
abaixo também não funcionou.
WEB.XML:
<context-param>
<param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ERROR_HANDLER</param-name>
<param-value>tvglobo.siscom.web.comum.ErrorHandler</param-value>
</context-param>

public class ErrorHandler {
public void handleException(FacesContext facesContext, Exception exception)
{
System.out.println("Passei aqui no ErrorHandler!"
+ exception.getMessage());
facesContext.responseComplete();

String viewId = "/error.xhtml";
System.out.println(viewId);

/*
UIViewRoot page =
facesContext.getApplication().getViewHandler().createView(facesContext,
viewId);
facesContext.setViewRoot(page);
facesContext.renderResponse();
*/

NavigationHandler navigationHandler =
facesContext.getApplication().getNavigationHandler();
navigationHandler.handleNavigation(facesContext, null, "error");
}
}

--
Atenciosamente,
Ricardo

"O único lugar onde 'sucesso' vem antes de 'trabalho' é no dicionário."
[Albert Einstein]

[As partes desta mensagem que não continham texto foram removidas]

__._,_.___
Atividade nos últimos dias:
Para sair da lista, envie email para: java-br-unsubscribe@yahoogroups.com
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
Querendo vender seu imóvel? Não perca tempo, acesse agora Y!Imóveis!

180.000 Vagas de EMPREGO. Anuncie seu Currículo por 7 dia GRÁTIS!

Solteiros! Aqui você encontra homens de todos os tipos.
.

__,_._,___

0 comentários:

Pague com LPs do Mister Colibri

Pague com LPs do Mister Colibri
Quer comprar celular,Tablet,pen drive, GPS e muito outros produtos e ainda podendo pagar tudo em LPs ?Pois saiba que isso é possível,basta você visitar o site downloadstotal.com e realizar a sua compra com toda tranquilidade e segurança!!!

Hora

Online

Arquivo do Blog