| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 14:30:45
|
maruero
JavaTeenager
![[Avatar]](/images/avatar/b252e54edce965ac4408effd7ce41fb7.jpg)
Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline
|
Boa tarde senhores,
Tenho um método de um controller que espera receber como parâmetro um enum, assim:
Se eu faço um request no browser, da maneira a baixo, tudo ocorre normal.
http://localhost:8080/meuwar/payment?type=CARTAO
Entretanto, se eu faço um redirect de algum outro método, da maneira a baixo, o type é nulo, e se eu uso-o, naturalmente, eu obtenho um NullPointerException.
O que estou fazendo de errado?
Ou isso é um "bug" do VRaptor?
This message was edited 2 times. Last update was at 17/01/2011 14:51:04
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 16:11:29
|
joeroots
Thread.start()
![[Avatar]](/images/avatar/f3e6b9460fc8ca16d85a63c88d5372f1.jpg)
Membro desde: 22/06/2010 18:36:09
Mensagens: 42
Offline
|
aqui funcionou perfeitamente:
Controller:
Saida:
_______________________________edit_______________________
para ele funcionar com o get eu fiz o seguinte:
e acessei assim:
Saida:
This message was edited 1 time. Last update was at 17/01/2011 16:17:12
|
______________________
Att.
Jonathan |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 16:54:24
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
maruero, dá null pointer na linha do redirect, ou depois do redirect?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 16:56:46
|
maruero
JavaTeenager
![[Avatar]](/images/avatar/b252e54edce965ac4408effd7ce41fb7.jpg)
Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline
|
Depois do redirect.
Ou seja, o type na linha 04 do código a baixo está nulo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 17:15:57
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
maruero, não consegui reproduzir o bug... que versão vc está usando do vraptor?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 17:47:01
|
maruero
JavaTeenager
![[Avatar]](/images/avatar/b252e54edce965ac4408effd7ce41fb7.jpg)
Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline
|
3.2.0
Estranho.
Eu coloquei um Interceptor apenas para verificar se o parâmetro está sendo passado corretamente, e no construtor do interceptor eu recebo um MethodInfo com um Type dentro.
Apenas no controller mesmo que o parâmetro fica nulo. Como se o VRaptor não soubesse interpretá-lo antes de chamar o método paymento do controller.
Vou continuar procurando possiveis erros.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 17:57:52
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
vc consegue reproduzir esse erro a partir do blank-project do vraptor?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 18:35:38
|
maruero
JavaTeenager
![[Avatar]](/images/avatar/b252e54edce965ac4408effd7ce41fb7.jpg)
Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline
|
Consegui reproduzir o erro no black_project e descobrir a fonte do problema, mas tive que fazer várias alterações.
O problema começa ocorrer quando eu implemento uma InterceptorSequence definindo nela o ParametersInstantiatorInterceptor como primeiro Interceptor a ser executado.
Preciso disso, pois tenho um outro Interceptor (responsável por disponibilizar a tela de login ao usuário quando este tenta acessar páginas de acesso restrito, e após o login dá um forward ao controller original requisitado pelo usuário) que necessita conhecer os parâmetros passados da JSP para os Controllers.
Alguem tem uma sugestão de consertar meu problema?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 18:51:12
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
entendi.
Se vc coloca o ParametersInstantiatorInterceptor num InterceptorSequence ele é registrado duas vezes. Por isso o nullPointer.
na próxima versão do VRaptor que sairá em breve, você pode fazer simplesmente:
sem necessidade do InterceptorSequence.
use por enquanto esse snapshot:
https://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.2.1-SNAPSHOT/vraptor-3.2.1-20110117.201244-10.jar
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 08:47:31
|
maruero
JavaTeenager
![[Avatar]](/images/avatar/b252e54edce965ac4408effd7ce41fb7.jpg)
Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline
|
Obrigado Lucas.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 10:33:53
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
se der qqer erro nesse snapshot ou vc tiver alguma sugestão por favor me avise, pra gente corrigir antes de lançar a versão nova
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2011 10:35:20
|
maruero
JavaTeenager
![[Avatar]](/images/avatar/b252e54edce965ac4408effd7ce41fb7.jpg)
Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline
|
Lucas,
Estou usando o snapshot e estou com um comportamente um pouco estranho.
Tenho 3 interceptors meus:
- Login
- Exceptions
- Initialization
Fiz o seguinte:
Exceptions executa "after" ParametersInstantiationInterceptor
Initialization executa "after" Exceptions
Login executa "after" Initialization
A idéia era deixar a sequencia assim:
ParametersInstantiationInterceptor -> Exceptions -> Initialization -> Login -> Controllers.
A sequencia está sendo respeitada, mas, estranhamente, os Controllers são instanciados antes de ser interceptados.
Ou seja, os construtores dos controllers executam antes dos Interceptors, isso está certo?
Isso está quebrando um pouco a idéia do meu InitializationInterceptor que é recuperar os parâmetros do contexto e colocá-los na sessão, para que os construtores dos controllers possam configurar os controllers durante o processo de inicialização.
This message was edited 1 time. Last update was at 19/01/2011 10:39:58
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2011 17:06:43
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
coloca o que precisa rodar antes de instanciar o controller com before=InstantiatorInterceptor.class...
por padrão ele só é antes de executar o método, não necessariamente antes de instanciar o controller
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2011 17:41:42
|
maruero
JavaTeenager
![[Avatar]](/images/avatar/b252e54edce965ac4408effd7ce41fb7.jpg)
Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline
|
Obrigado.
Funcionou!!!
|
|
|
 |
|
|