Tratar exception com vRaptor 3  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
lico
JavaBaby

Membro desde: 30/07/2008 11:00:38
Mensagens: 83
Offline

Lucas

Desta maneira que vc sugeriu funcionou mas só mostra a mensagem de erro
ou seja o intercept não deixa acessar mais nada a não ser a mensagem de erro.

Pelo menos funcionou agora temos q designar o metodo q ela deve ser vista.
[MSN]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

tenta formatar o PC e refaz o teste ahuahuhua
brincadeira...


que zica em ?

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
lico
JavaBaby

Membro desde: 30/07/2008 11:00:38
Mensagens: 83
Offline

Lavieri

Nem me fale, eu sim estou meio chateado ate por estar com tanto problema igual esse.


nem sei oq dizer rsss.

Abraço
[MSN]
lico
JavaBaby

Membro desde: 30/07/2008 11:00:38
Mensagens: 83
Offline

Lucas,

Você tem alguma idéia como resolver a questão pro intercept definir quando é um erro pra dai lançar a mensagem?

Porq da maneira q você fez ele nem abre a tela de login vai direto pro erro.


Abraço e agradeço a ajuda
[MSN]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

Tem algo estranho e bizarro no que vc esta fazendo.... acabei de testar aqui, e funciona corretamente....

Não fiz com Hibernate pq meu projeto usa um base, e não tenho como extender ele 2 vezes... então segue aki meu teste, que foi bem sucedido...


Criei um Recurso com 2 lógica, uma onde ocorre uma exceção, e outra pra onde a exceção deve ir parar



A ideia é a exceção ser lançada em lancaErro() e ir para em seguraEx()

crie então uma página em

WEB-INF/test/seguraEx.jsp

com o conteudo abaixo



Então fiz um interceptor, que agarra exceções e envia pra seguraEx




Então acessei => http://localhost:8080/contexto/test/lancaErro

e o resultado foi o experado.... a exceção foi lançada no método lancaErro(); foi para no interceptor, foi incluida dentro de ${ex} e então o fluxo foi enviado para o TestController.class para a lógica seguraEx(), e então a página seguraEx.jsp é exibida, produzindo o texto abaixo!




tem algo estranho ai na sua lógica

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

Obs.: provavelmente o seu problema é o seguinte




altere esse trecho pelo o abaixo

This message was edited 1 time. Last update was at 12/03/2010 15:19:32


Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
lico
JavaBaby

Membro desde: 30/07/2008 11:00:38
Mensagens: 83
Offline

Lavieri

fiz o teu modelo funcionou como mencionou.

Agora fiz a alteração q vc sugeriu não funcionou tambem.

Vou começar do zero denovo esse intercept, controller e jsp.


tomara q eu tenha sucesso,
não sei oq esta ocorrendo.

mas vou tentar

[MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

qqer coisa no interceptor faz:



e vê se funciona

--
Caelum
www.caelum.com.br

lico
JavaBaby

Membro desde: 30/07/2008 11:00:38
Mensagens: 83
Offline

Lucas e Lavieri!

Depois de muita luta descobri o problema.

Era um @interface com do vraptor pra bloquear o acesso mas tinha coisa erra q não funciona com ela.

Mas primeiro vou resolver o problema da exception
depois vejo o erro dessa @interface com Interceptor.


Por enquanto muito obrigado.

e Abraço.

Bom final de semana a todos
[MSN]
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Ressuscitando o tópico por ter um problema parecido.
Eu estou implementando o Interceptor que passaram e gostaria que ele capturasse apenas minhas HibernateException's.
Segue o interceptor:



Para simular, em uma das controllers estou fazendo o seguinte:


Solução?
Valeu.

This message was edited 2 times. Last update was at 12/10/2010 17:38:25


developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Com esse Interceptor que repliquei acima, as mensagens de erro ficam muito ruins para retornar para um usuário.
Implementei de uma outra forma e gostaria da opinião do pessoal.

Na minha DAO, tenho o seguinte método.


A Controller que utiliza o método acima utiliza um esquema mais ou menos assim.


Claro, eu gostaria de utilizar o Inteceptor... Mas devido ao problema do post anterior não está sendo possível.

Obrigado novamente.

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Mr_Arthur, você não precisa mais fazer isso. Se você usar o Vraptor 3.2 vocẽ pode usar o Exception Handler.



Assim sempre que der uma HibernateException o Vraptor irá fazer um forward para o método algumaCoisa. Na tela você recebe os seguintes atributos (padrão servlets):



Ou seja, na página você pode fazer algo assim para exibir a mensagem de erro:


http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum.
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Muito bom, obrigado Garcia.

Agora seguinte... Hoje eu inicio minhas transações por meio das sessões do hibernate que são injetadas nas minhas DAOs.
Se uma HibernateException vai ser lançada no método persist(), onde eu vou dar o rollback?

Valeu.

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Resolvido.

Reposta tá no:
Site do VRaptor -> Menu Documentação -> Opção 11. Componentes Utilitários Opcionais.

Valeu.

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

garcia-jj wrote:Mr_Arthur, você não precisa mais fazer isso. Se você usar o Vraptor 3.2 vocẽ pode usar o Exception Handler.




E sobre utilizar os hibernate providers do vraptor...
O commit() só vai acontecer quando passar denovo pelo HibernateTransactionInterceptor.
Como eu faço tratamento de redirecionamento para minhas páginas ou lógicas?

Obrigado pelas respostas.

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team