VRaptor3 - Não executa método [Resolvido]

6 respostas
renzonuccitelli

Olá pessoal. Fiz o exemplo básico do VRaptor e o início deu certo. Contudo, na hora de hora de logar, ele não está chamando o método login.

Meu Controller:
@Resource
public class IndexController {
	private Result result;
	private LoggedUser loggedUser;

	public IndexController(Result result, LoggedUser loggedUser) {
		this.result = result;
		this.loggedUser = loggedUser;
	}

	@Path("/")
	public void index() {

	}

	@Post
	public void login(Person person) {
		loggedUser.setLogin(person.getLogin());
		loggedUser.setPassword(person.getPassword());
		result.redirectTo(HomeController.class).home();
	}

}
minha jsp:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Digital do Vale</title>
</head>
<body>
	<form action="/index/login/" method="post">
		Login: <input type='text' name='person.login'></br>
		Senha: <input type='password' name='person.password'></br>
		<input type='submit' value='Entrar'>
	</form>
</body>
</html>

Cheguei a debugar e vi que ele entra no método index, mas não no login. Ele dá o erro 404, falando que não achou o resource para /index/login

Obrigado desde já e bom fim de carnaval a todos :)

6 Respostas

G

Acho que o padrão do vraptor é usar sem a barra no final. Então deveria ser algo como /index/login.

Abraços

renzonuccitelli

garcia-jj:
Acho que o padrão do vraptor é usar sem a barra no final. Então deveria ser algo como /index/login.

Abraços

Esqueci de comentar garcia-jj: já tentei com e sem barra no final, já tentei anotar o método com um path diferente tb, e nada. De qq forma, obrigado pela tentativa.

G

Só que tem um porém… qual o seu contexto? Você está usando /xxx ou /meu-context/xxx?

renzonuccitelli

estou usando /meu-context/xxx. Cheguei a colocar o meu-context também no jsp e no path, mas não funcionou. Só o que não testei foi deixá-lo vazio. Pra isso, é só setar o WebContext no eclipse para vazio? De qq forma, já vou colocar pra vazio e testar. Se der certo, já venho avisar. Acho que sou o único programador Java que só manjo de Desktop e não de Web…rs.

Vlw pela força.

renzonuccitelli

Muito Obrigado garcia-jj. Coloquei para vazio e aí funfou aki. Talvez fosse bom colocar um aviso na documentação do VRaptor para os newbies como eu…hehe.
Vou colocar o post como resolvido.

G

Renzo, o projeto web tem uma particularidade. Qauando você cria um projeto web você precisa dizer onde está seus arquivos que ficam acessíveis da web (web content) que pode ser qualquer coisa, e também o seu contexto web.

O primeiro indica onde ficam os arquivos que ficarão visíveis na web, no caso imagens, javascript e afins. Tudo que estiver um nível acima não será visível na web. Os diretórios META-INF e WEB-INF, mesmo que estejam abaixo do web content não são visíveis, e se você tentar acessar retorna erro 404.

O segundo é o seu contexto. Ele não tem relação alguma com o primeiro. Ele apenas indica qual o diretório abaixo do seu domínio ele ficará. Se seu contexto for vazio vocẽ irá acessá-lo via www.vraptor.org/. Caso você indicar o contexto teste você irá acessar sua aplicação via www.vraptor.org/teste.

Acho que é isso, hehe.

Abraços

Criado 16 de fevereiro de 2010
Ultima resposta 16 de fev. de 2010
Respostas 6
Participantes 2