| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/02/2010 16:12:27
|
diguix
JavaChild
![[Avatar]](/images/avatar/16ad66b2d7d7eda19f34e2f6197e2236.jpg)
Membro desde: 27/08/2006 19:53:29
Mensagens: 142
Localização: RJ/Rio de Janeiro
Offline
|
O que está acontecendo pessoal é o seguinte.
Estou usando o HibernateTransactionInterceptor para gerenciar as transações do hibernate no Vraptor,
porém quando acontece uma exception(ie. ConstraintViolationException) não consigo recupera-la para tratar na camada de cima.
Gostaria de saber se tem alguma forma de fazer isto, ou algum workaround
Abraços
|
O conhecimento está a onde nós olhamos com vontade de aprender! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/02/2010 17:04:34
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Você está usando o hibernate/jpa controlado manualmente ou pelo Vraptor?
Uma coisa que você pode fazer, que fiz algo semelhente em um componente que faz um exception-handler, é verificar se é uma exception do bean validator e tratá-la de forma diferente. Não sei bem o motivo, mas as exceptions do bean validator são um pouco diferentes.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/02/2010 17:19:37
|
diguix
JavaChild
![[Avatar]](/images/avatar/16ad66b2d7d7eda19f34e2f6197e2236.jpg)
Membro desde: 27/08/2006 19:53:29
Mensagens: 142
Localização: RJ/Rio de Janeiro
Offline
|
Fala garcia-jj ;p
Então cara estou usando o hibernate controlado pelo HibernateCustonProvider.
O problema é que não sei onde implementar essa verificação?
editado: Meu problema é que como estou usando o customprovider ele não me gera exception e passa direto so exibindo no log.
Você criou um interceptor específico?
gostei muito da dica,
obrigado e Abraços;
This message was edited 1 time. Last update was at 22/02/2010 17:21:08
|
O conhecimento está a onde nós olhamos com vontade de aprender! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/02/2010 17:37:15
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
cria um interceptor:
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/02/2010 18:14:56
|
diguix
JavaChild
![[Avatar]](/images/avatar/16ad66b2d7d7eda19f34e2f6197e2236.jpg)
Membro desde: 27/08/2006 19:53:29
Mensagens: 142
Localização: RJ/Rio de Janeiro
Offline
|
Meu interceptor não está pegando a exception, dei uma olhada no código do HibernateCustomProvider e só tem try e finally.
Lucas, você sabe qual componente do Vrpator está entubando esta exceção?
ou eu to perdido demais
Abraços.
|
O conhecimento está a onde nós olhamos com vontade de aprender! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/02/2010 19:09:28
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
dá um try..catch em InterceptorException e usa o e.getCause pra saber qual exceção foi
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2010 13:45:24
|
diguix
JavaChild
![[Avatar]](/images/avatar/16ad66b2d7d7eda19f34e2f6197e2236.jpg)
Membro desde: 27/08/2006 19:53:29
Mensagens: 142
Localização: RJ/Rio de Janeiro
Offline
|
pessoal o seguinte consegui fazendo uma adaptação, tive que reescrever o HibernateTransactionInterceptor,
inserindo o bloco do catch e incluindo o result para responder as minhas necessidades.
e Escrevi um CustomProvider para implementar o meu HibernateTransactionInterceptor.
o que vocês acham? resolveu meu problema.
Abraços.
|
O conhecimento está a onde nós olhamos com vontade de aprender! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2010 14:52:46
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
só toma cuidado que vc tá engolindo a exceção... faça o seguinte, dentro do catch:
de resto tá ok =)
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2010 14:55:55
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
alem de setar o status, é bom logar a exception....
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2010 14:57:17
|
diguix
JavaChild
![[Avatar]](/images/avatar/16ad66b2d7d7eda19f34e2f6197e2236.jpg)
Membro desde: 27/08/2006 19:53:29
Mensagens: 142
Localização: RJ/Rio de Janeiro
Offline
|
Show do milhão !
nem me dei conta que estava entubando a exceção.
Valeu Lucas Abraços.
editado:
Paulo,
a exception já é logada automaticamente, acho que pelo próprio quando ele quebra.
mas só por garantia vou logar também.
This message was edited 1 time. Last update was at 23/02/2010 15:00:30
|
O conhecimento está a onde nós olhamos com vontade de aprender! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2010 15:17:03
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Paulo Silveira wrote:alem de setar o status, é bom logar a exception....
O ideal é sempre deixar para fazer o log em sua camada mais externa, senão quando der uma exception você terá muitos stacktrace para um mesmo erro, dificultando a visualização dos logs. A menos, claro, que você trate essa exception; nesse caso é melhor fazer o logging dela e depois tratar. (Como é o caso dele "setar o status")
This message was edited 1 time. Last update was at 23/02/2010 15:19:20
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
|
|