| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 09:38:09
|
jingle
Virtual Machine Man
Membro desde: 04/10/2006 20:40:08
Mensagens: 642
Localização: Canoas/RS
Offline
|
Oi tem como eu pegar a instancia do método que estou interceptando?
só pra esclarecer melhor:
tenho interceptor normal
que esta interceptando um método que não é estático, gostaria de pegar esta instância.
This message was edited 1 time. Last update was at 20/05/2010 09:52:26
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 10:03:11
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
resourceInstance é uma instancia do controller que está sendo interceptado
method.getMethod() é o método (java.reflect.Method) interceptado
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 10:07:53
|
jingle
Virtual Machine Man
Membro desde: 04/10/2006 20:40:08
Mensagens: 642
Localização: Canoas/RS
Offline
|
Lucas Cavalcanti wrote:resourceInstance é uma instancia do controller que está sendo interceptado
method.getMethod() é o método (java.reflect.Method) interceptado
Estranho pois estou interceptando um método não estatico e o resourceInstance é nullo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 10:24:26
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
não dá pra interceptar métodos estáticos...
métodos estáticos não são expostos como URIs...
a ordem de execução dos interceptors é essa:
isso é código do vraptor... vc pode criar essa mesma classe na sua aplicação, anotá-la com @Component e registrar seu interceptor na mão depois do instantiator (nesse caso seu interceptor tem que estar anotado com @Component, e não com @Intercepts)
vc pode me explicar por favor pq vc precisa da instância do controller, pra eu ver se tem uma solução melhor que essa por favor?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 10:52:40
|
jingle
Virtual Machine Man
Membro desde: 04/10/2006 20:40:08
Mensagens: 642
Localização: Canoas/RS
Offline
|
meu problema todo começou quando quis tratar os erro da aplicaçao:
queria remover os try catch das controller e colocalos em um interceptor, porém nos controller os meus métodos tem redirect diferente pra quando da o erro e para quando da sucesso:
exemplo
dai eu tinha pensado em criar uma superclasse com métodos que defini para onde vai ir em caso de falha e em caso de sucesso, e no interceptor eu obtinha esses valor e fazia o redirect...
mas me pareceu meio complexo de +++++ e estou já desistindo dessa abordagem.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 11:04:15
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
o garcia-jj fez algo do tipo já... ele até mandou uma feature request pra colocar isso no vraptor...
o que vc quer é algo genérico?
tipo: se der a ABCException vai pra XYZController.trataException();
ou vc quer algo que depende da lógica?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 11:15:17
|
jingle
Virtual Machine Man
Membro desde: 04/10/2006 20:40:08
Mensagens: 642
Localização: Canoas/RS
Offline
|
que eu queria era fazer algo +- assim no meu interceptor:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 11:20:44
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
vc acha que isso é suficiente?
daí o vraptor redirecionaria pra UmControlller.umaLogica() se desse a UmaException
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 11:22:13
|
jingle
Virtual Machine Man
Membro desde: 04/10/2006 20:40:08
Mensagens: 642
Localização: Canoas/RS
Offline
|
Lucas Cavalcanti wrote:vc acha que isso é suficiente? daí o vraptor redirecionaria pra UmControlller.umaLogica() se desse a UmaException
Exatamente!!! isso seria mais que suficiente. ainda mais se puder ter varios desse result.on (colocando classes de exception diferentes.)
This message was edited 1 time. Last update was at 20/05/2010 11:23:36
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 11:27:53
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Lucas Cavalcanti wrote:o garcia-jj fez algo do tipo já... ele até mandou uma feature request pra colocar isso no vraptor...
Ahh, bem lembrado. Esse final de semana vou te mandar alguma coisa.
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 14:19:05
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Lucas, ví agora o comentário na issue. Até agora eu tinha implementando algo parecido com o seu exemplo:
Se por acaso ele cair nisso, o ExecuteMethodInterceptor pega a exception e joga em uma variável exception e joga para o destino indicado, de forma bem semelhante ao que é feito no Validation.onErrorUse.
Provavelmente eu faça um pull lá no meu fork no sábado.
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/05/2010 15:17:20
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
ok, espero então =)
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/09/2010 12:14:21
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Para quem acompanha esse tópico, já há um esboço de como será o exception handler no meu fork: http://github.com/garcia-jj/vraptor/tree/exceptionhandler.
Tento em mente as exceptions FooException e BarException filhas de RuntimeException podemos fazer algo como:
E caso não houver declaração de tratamento de exception o vraptor estoura o erro 500 padrão. O mesmo acontece se você declarar, por exemplo, uma FooException e por acaso ocorrer uma NullPointerException, já que o exception handler testa apenas a exception declarada e suas filhas.
Nesse exemplo usei forwardTo, porém pode ser usado qualquer método de Results.*.
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
|
|