recuperar exception a partir do HibernateTransactionInterceptor  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
diguix
JavaChild
[Avatar]

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!
[Email]
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.

diguix
JavaChild
[Avatar]

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!
[Email]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

cria um interceptor:


--
Caelum
www.caelum.com.br

diguix
JavaChild
[Avatar]

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!
[Email]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

diguix
JavaChild
[Avatar]

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!
[Email]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

Paulo Silveira
Administrador
[Avatar]

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


[Email] [WWW]
diguix
JavaChild
[Avatar]

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!
[Email]
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.
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team