Erro no Iterceptor do vraptor 3[RESOLVIDO]  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
lucasant
What is classpath?

Membro desde: 27/09/2007 12:12:25
Mensagens: 9
Offline

Estou fazendo um iterceptor simples para validar sessão, quando carrega a aplicação e o interceptor atua, gera uma exceção.
Pecebi que é na hora do redirecionamento. Tentei por lógica e por página, mas gera o mesmo erro.
podem me ajudar?

Exceção:

Código do interceptor:



código do userMgrController:


This message was edited 1 time. Last update was at 04/09/2009 10:56:19

Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

Pelo que eu vi não tá chegando nesse interceptor... ou se chega, dá uma olhada na uri que ele tá chamando...

pelo jeito ele não conseguiu instanciar algum parâmetro da lógica... e deu erro de validação por causa disso

qual uri você tá chamando que chega nesse código?

--
Caelum
www.caelum.com.br

lucasant
What is classpath?

Membro desde: 27/09/2007 12:12:25
Mensagens: 9
Offline

Se entendi direito:
quando chama o list do faq, o interceptor é chamado, e verifica se há usuário logado, então ele redireciona para a URL("http://localhost:8080/teste-vraptor3-groupwareworkbench/groupware-workbench/1/userMgr/login").
nesse momento do redirecionamento dentro do interceptor é lançada a exceção.

Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

Parece que algum dos parametros que voce esta passando esta com erro de conversao. Por exemplo o campo eh int e vc esta passando uma string. Quais os parametros e qual o modelo que vc esta usando?


A mensagem de erro deveria ser mais educada, claro. O Sergio Lopes esta trabalhando nesse bug.

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
wariows
JavaGuru
[Avatar]

Membro desde: 03/11/2006 02:27:43
Mensagens: 206
Offline

Guilherme Silveira wrote:Parece que algum dos parametros que voce esta passando esta com erro de conversao. Por exemplo o campo eh int e vc esta passando uma string. Quais os parametros e qual o modelo que vc esta usando?


A mensagem de erro deveria ser mais educada, claro. O Sergio Lopes esta trabalhando nesse bug.


Ele está requisitando um parâmetro pelo @Path e não está colocando o parametro no método:





ninguém tá recebendo {idToolInstance}, será que é isso?

O certo seria:



Não sei de onde vem esse 'User' tb...

This message was edited 3 times. Last update was at 03/09/2009 20:06:04


"Tudo o que você precisará quando o universo acabar é de uma toalha"
[MSN]
lucasant
What is classpath?

Membro desde: 27/09/2007 12:12:25
Mensagens: 9
Offline

O User vem do form da tela de login, ao fazer submit, ele chama o método doLogin(User user), mas ele nem chega ar ir para o método login().
Quando o interceptor redireciona para a tela de login, chamando o métod login() do userMgrController, ele gera a exceção na chamada do redirecionamento.
Muito obrigado por estarem me ajudando. Vou tentar essas dicas que vocês sugeriram.

This message was edited 1 time. Last update was at 04/09/2009 01:08:13

Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

oi lucas
de o feedback assim que testar!
abracos

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
wariows
JavaGuru
[Avatar]

Membro desde: 03/11/2006 02:27:43
Mensagens: 206
Offline

lucasant wrote:O User vem do form da tela de login, ao fazer submit, ele chama o método doLogin(User user), mas ele nem chega ar ir para o método login().
Quando o interceptor redireciona para a tela de login, chamando o métod login() do userMgrController, ele gera a exceção na chamada do redirecionamento.
Muito obrigado por estarem me ajudando. Vou tentar essas dicas que vocês sugeriram.




Mesmo problema cara, vc precisa receber os parametros que especificou no path no método. tem que ficar assim:


"Tudo o que você precisará quando o universo acabar é de uma toalha"
[MSN]
galmeida
Thread.start()
[Avatar]

Membro desde: 03/11/2004 17:44:16
Mensagens: 28
Offline

Não sei se ajuda ou atrapalha: eu recebi a mesma exception (You must call goTo method in order to specify where to go) quando usei a validação no estilo clássico sem chamar validator.onError().goTo(FuncionarioController.class).formulario();

galmeida
lucasant
What is classpath?

Membro desde: 27/09/2007 12:12:25
Mensagens: 9
Offline

Resolvido.
Com a ajuda do meu chará Lucas da Caelum, vimos que é um bug do vraptor 3 que eles consertarão.
O problema é que na chamada da URL ele teria que chamar o login, por algum motivo ele casa com o padrão do método delete, esperando o parâmetro User.
Por isso ocorre o erro.
Colocando prioridades no @Path dos métodos, o problema foi resolvido.

obrigado a todos que tentaram me ajudar!!!

Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline


Repara que nao eh bem um bug. Se voce nao usa as prioridades, teoricamente nao da para saber se userMgr/login eh para fazer match com a url de baixo ou a decima.
O Lucas se referiu a implementacao de suporte a deteccao por tipo. Se user.id e' do tipo int, ele vai percebe que login nao e' int, entao nao e' para ir para essa url. Apesar de resolver alguns problemas, somente o uso de prioridade vai servir. O caso a seguir eh um exemplo que nao resolveria sem prioridade:



-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team