Migração VRaptor 4 - Erro de requisição

31 views
Skip to first unread message

Marcelo Venancio

unread,
Nov 6, 2015, 2:37:37 PM11/6/15
to caelum-vraptor

Boa tarde!

Estou migrando meus projetos para o VRaptor 4 e encontrei um problema que não estou conseguindo resolver. Quando envio uma requisição, a mesma não passa pelo método do controller, sendo imediatamente direcionada para o .jsp de mesmo nome correspondente, causando o erro 404 nos métodos onde não possue um .jsp com o mesmo nome. Por exemplo, quando vou efetuar o login do usuário, o método no controller chama-se logar, e nesse método eu redireciono para outro método chamado home caso o usuário efetue o login. Nesse caso ele tenta achar o logar.jsp que não existe e retorna o erro 404 no browser e no eclipse não aparece erro nenhum. Segue abaixo os códigos:






@Controller
public class LoginController {
   
private Usuario usuario;

   @Inject
   
public LoginController(Usuario usuario) {
      this.usuario = usuario;
   
}

   @Get("/")
   public void index() {}

   @Post
   public void logar(String email, String senha) {
        Usuario usuario = usuariodao.findByEmail(email);
        if(isUsuarioValido(usuario, senha)) {
            configurarSessao(usuario);
            result.redirectTo("/home/home");
        }else {
            result.include("msgUserError", Messages.MSG_INVALID_USER);
            result.redirectTo(this).index();
        }
    }
}

<form action="${linkTo[LoginController].logar}" method="post">
   <input type="text" name="email"/>
   <input type="password" name="senha"/>
  
<input type="submit" value="Entrar"/>                  
</form>


Marcelo Venancio

unread,
Nov 9, 2015, 11:59:03 AM11/9/15
to caelum-vraptor
Problema resolvido. O erro estava em meus interceptors que não foram alterados conforme as novas anotações do VRaptor 4. O problema foi resolvido alterando-se as mesmas com as novas anotações.

André Faria

unread,
Dec 28, 2015, 5:59:28 AM12/28/15
to caelum-vraptor
Marcelo, estou com o mesmo problema.

Poderia postar os seus interceptors para eu comparar com os meus ?
Já estou a dois dias com esse problema.

Marcio Angelo Matté

unread,
Dec 28, 2015, 6:35:22 AM12/28/15
to caelum-...@googlegroups.com
Na linha -->  Usuario usuario = usuariodao.findByEmail(email)  será que não houve alguma exception?

Por via das dúvidas depois do bloco if/else coloque um redirect para algum lugar... 



--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vrapto...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Marcio Angelo Matté
marcio...@gmail.com

Marcelo Venancio

unread,
Jan 5, 2016, 1:51:54 PM1/5/16
to caelum-vraptor
André, segue um modelo de interceptor que eu uso aqui :

@Intercepts
@RequestScoped
public class UsuarioInterceptor implements Interceptor {
   
private Sessao sessao;
   
private Result result;
   
   
public UsuarioInterceptor() {}
   
   
@Inject
   
public UsuarioInterceptor(Sessao sessao, Result result) {
       
this.sessao = sessao;
       
this.result = result;
   
}

   
@Accepts
   
public boolean accepts(ControllerMethod method) {
       
return method.getController().getType().getSimpleName().equalsIgnoreCase("UsuarioController");
   
}

   
@BeforeCall
   
public void intercept(InterceptorStack stack, ControllerMethod method, Object instance) throws InterceptionException {
       
if(sessao.getUsuario() != null && sessao.getUsuario().getUsuarioAdm() == Usuario.ADM_NAO) {
            result
.include("msgAccessError", "Acesso Negado!!!");
            result
.redirectTo(HomeController.class).home();
           
return;
       
}
        stack
.next(method, instance);
   
}
}

OBS: Obrigado Márcio pela dica ... :)
Reply all
Reply to author
Forward
0 new messages